Avatar billede dan_n Nybegynder
26. maj 2004 - 14:05 Der er 11 kommentarer og
1 løsning

Problem med SQL COUNT

Hi

Er der nogle som lige kan fortælle mig hvorfor, denne SQL COUNT ikke virker som den skal:

="SELECT COUNT(sortID) AS rsCount FROM menu WHERE(sortID = " & ( sortID+1) &"OR sortID = " & (sortID-1) &" AND parentID=0)"

Problemmer er at paramenterne efter AND (parentID=0) bliver ignoreret ??

Jeg har også prøvet at bytte lidt om på kriterierne i sætning til fx.
="SELECT COUNT(sortID) AS rsCount FROM menu WHERE( parentID=0 AND sortID = " & ( sortID+1) &" OR sortID = " & (sortID-1) &" )"
Nu er det ikke AND som bliver ignoreret men den sidste OR (sortID = " & (sortID-1) &" )

Hvad er problemmet ?? kan man ikke have mere en 2 kriteier i en COUNT WHERE

/Dan
Avatar billede taskmgr Nybegynder
26. maj 2004 - 14:08 #1
Prøv med:

="SELECT COUNT(sortID) AS rsCount FROM menu WHERE(sortID = " & ( sortID+1) &"OR sortID = " & (sortID-1) &") AND (parentID=0)"
Avatar billede inglenook Praktikant
26. maj 2004 - 14:10 #2
proev saadan:
="SELECT COUNT(sortID) AS rsCount FROM menu WHERE(sortID = " & ( sortID+1) & " OR sortID = " & (sortID-1) &") AND parentID=0"
Avatar billede hiks Nybegynder
26. maj 2004 - 14:10 #3
Det er sandsynligvis dine paranteser der driller dig... - hvis du vel og mærke er sikker på dine parametre! Pas også på med mellemrummene!!!

Det kaldes boolean algebra og der er nogle bestemte regler ang. "styrkeforholdet" mellem AND og OR eksempelvis.

="SELECT COUNT(sortID) AS rsCount FROM menu WHERE (sortID = " & ( sortID+1) &" OR sortID = " & (sortID-1) &") AND parentID=0;"

/hiks
Avatar billede inglenook Praktikant
26. maj 2004 - 14:11 #4
oops, lidt for sent..... :-)
Avatar billede taskmgr Nybegynder
26. maj 2004 - 14:12 #5
Det var vel egentligt et svar :)
Avatar billede dan_n Nybegynder
26. maj 2004 - 14:14 #6
> hiks
"Det kaldes boolean algebra og der er nogle bestemte regler ang. "styrkeforholdet" mellem AND og OR eksempelvis."

Hvordan lyder disse regler, hvilke skal være først ???
Avatar billede dan_n Nybegynder
26. maj 2004 - 14:15 #7
>>hvilke skal være først ???
AND,OR, LIKE osv.
Avatar billede dan_n Nybegynder
26. maj 2004 - 14:16 #8
Det var vist taskmgr der var hurtigst !
Takker for alle svarene, have ikke lige tænkt på at det kunne være parenteserne :-)
Avatar billede taskmgr Nybegynder
26. maj 2004 - 14:20 #9
Jamen tak for point så :)

Her er lidt basis læsestof omkring "Boolean":
http://florin.syr.edu/webarch/searchpro/boolean_tutorial.html
Avatar billede dan_n Nybegynder
26. maj 2004 - 14:24 #10
Det var nu specielt "styrkeforholdet" mellem dise boolean operators, jeg godt kunne tænke mig lidt mere info på.

hiks skriver der åbenbart kan være forskel på om AND eller OR står forrest i nogle SQL staments
Avatar billede hiks Nybegynder
26. maj 2004 - 14:31 #11
Det har ikke så meget med rækkefølge men mere med hvordan du sammensætter AND og OR.

Jeg mener det er således

x AND y or z -> vil svare til at der stod (x AND y) OR z

- det er derfor du er nødt til at bruge det omkring din OR hvis det er det du vil tage højde for!

Tjek evt. http://ece.concordia.ca/~tahar/coen311/notes/Chapter2-BooleanAlgebra.pdf

Under Distribution Law og De Morgans Law!

/hiks
Avatar billede dan_n Nybegynder
26. maj 2004 - 17:24 #12
Så er jeg med igen, takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester