Korte vraag maar kan het antwoord nergens vinden op google vandaard at ik maar weer hier me vraag stel :)
Heb de volgende query
SELECT id, AVG(nummer) - 10 as uitkomst FROM rekentabel WHERE
uitkomst > 0 AND id Between 10 AND 15 GROUP BY id

Hij geeft nu de melding dat column 'uitkomst' niet bestaat en die bestaat op zich ook niet maar hoe kan ervoor zorgen dat ik alleen uitkomsten krijg die groter zijn dan 0?

thx.

SELECT id, AVG(nummer) - 10 > 0 as uitkomst FROM rekentabel WHERE
uitkomst > 0 AND id Between 10 AND 15 GROUP BY id


Volgens mij werkt zoiets wel, weet het niet 100% zeker
Nee, dat werkt niet. Uitkomst bestaat niet als kolom dus die kan je niet in je where opnemen. Je moet gewoon je berekening ook in je where zetten.
SELECT id, AVG(nummer) - 10 as uitkomst FROM rekentabel WHERE
AVG(nummer) - 10 > 0 AND id Between 10 AND 15 GROUP BY id
Nee hb dat geprobeerd maar hij geeft bij dit stukje de foutmeldingL
'WHERE uitkomst > 0'

Hij kan de 'uitkomst' niet vinden omdat het geen echte kolom is maar heb het wel eerder berekend (in de select clausule).

[size=xsmall]Toevoeging op 12/08/2010 12:19:02:[/size]

Als ik de formulier nogmaals neerzet in de WHERE krijg ik deze foutmelding:
Invalid use of group function
Probeer dit eens in te voegen:

SELECT id, AVG(nummer) - 10 as uitkomst 
  FROM rekentabel 
 WHERE AVG(nummer) - 10 > 0 
   AND id Between 10 AND 15 
 GROUP BY id


[edit]
Hmmm, werkt idd niet in MYSQL
Het is wel ANSI SQL syntax....
De WHERE met berekening zul je moeten vervangen door HAVING:


SELECT
  id,
  AVG(nummer) - 10 AS uitkomst
FROM
  rekentabel
WHERE
  id BETWEEN 10 AND 15
GROUP BY
  id
HAVING
  AVG(nummer) - 10 > 0


ps. En let ook altijd op de goede volgorde in je query: WHERE, GROUP BY, HAVING...
Bedankt, ben nog niet zo heel erg ver wat betreft sql dus wist niet dat having bestond :P

Reageren