Avatar billede melted Nybegynder
09. maj 2003 - 12:33 Der er 6 kommentarer og
1 løsning

SQL-sætning der driller

Jeg har en SQL-sætning hvor jeg skal finde nogle billeder frem som folk har bedømt, men der skal kun vises billeder hvor der er mere end 5 der har afgivet bedømmelse.

Jeg skriver "stemmer > 5" hvor stemmer kommer fra "count(stemmer.karakter) AS stemmer", men jeg får denne fejl: "Too few parameters, expected 1"

"SELECT gallerier.id, pictures.picid, pictures.picposition, sum(stemmer.karakter) AS karakter, count(stemmer.karakter) AS stemmer FROM (stemmer RIGHT JOIN gallerier ON stemmer.ID = gallerier.ID) LEFT JOIN pictures ON gallerier.ID = pictures.ID WHERE  (pictures.picposition=1 OR pictures.picposition IS NULL)AND stemmer > 5 GROUP BY gallerier.id, pictures.picid, pictures.picposition, stemmer.ID"

Hvad gør jeg forkert???
Avatar billede eagleeye Praktikant
09. maj 2003 - 12:37 #1
Det er nok fordi du bruger alias  stemmer  og du har en tabel som heddder det samme stemmer. Prøv at ændre stemmer til eksvis antal, det skal være noget du ikke har som tabel eller kolonne navn:

count(stemmer.karakter) AS antal
Avatar billede melted Nybegynder
09. maj 2003 - 13:26 #2
Har prøvet... virker ikke
Avatar billede eagleeye Praktikant
09. maj 2003 - 13:28 #3
Hvad hvis du skriver count(stemmer.karakter) igen?

"SELECT gallerier.id, pictures.picid, pictures.picposition, sum(stemmer.karakter) AS karakter, count(stemmer.karakter) AS stemmer FROM (stemmer RIGHT JOIN gallerier ON stemmer.ID = gallerier.ID) LEFT JOIN pictures ON gallerier.ID = pictures.ID WHERE  (pictures.picposition=1 OR pictures.picposition IS NULL) AND count(stemmer.karakter) > 5 GROUP BY gallerier.id, pictures.picid, pictures.picposition, stemmer.ID"
Avatar billede melted Nybegynder
09. maj 2003 - 13:29 #4
Har også prøvet det... virker heller ikke :(
Avatar billede melted Nybegynder
09. maj 2003 - 13:30 #5
Så får jeg en fejl om at man ikke kan have en aggrigat funktion i en WHERE sætning
Avatar billede eagleeye Praktikant
09. maj 2003 - 13:37 #6
Så prøv at brug HAVING

"SELECT gallerier.id, pictures.picid, pictures.picposition, sum(stemmer.karakter) AS karakter, count(stemmer.karakter) AS stemmer FROM (stemmer RIGHT JOIN gallerier ON stemmer.ID = gallerier.ID) LEFT JOIN pictures ON gallerier.ID = pictures.ID WHERE  (pictures.picposition=1 OR pictures.picposition IS NULL) GROUP BY gallerier.id, pictures.picid, pictures.picposition, stemmer.ID HAVING count(stemmer.karakter) > 5"
Avatar billede melted Nybegynder
09. maj 2003 - 13:43 #7
YES! Det virkede - mange tak :)
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