10. marts 2003 - 13:17Der er
4 kommentarer og 1 løsning
avg()
Hvorfor kan jeg ikke koble disse to sql-sætninger sammen?
$hent="SELECT *,DATE_FORMAT((dato), '%d') AS dato_dayn, dato,DAYNAME(dato) AS dato_day, monthNAME(dato) AS dato_month, year(dato) AS dato_year FROM diagram";
og
$gen ="Select AVG(amount) as genn from diagram";
skulle så blive til
$hent="SELECT *,DATE_FORMAT((dato), '%d') AS dato_dayn, dato,DAYNAME(dato) AS dato_day, monthNAME(dato) AS dato_month, year(dato) AS dato_year, AVG(amount) AS gennemsnit FROM diagram";
Aggregate funktioner kan ikke bruges sammen med "normale" felter i et SELECT kald. Man kunne argumentere for, at DMBS systemet godt kunne analysere sig ud af det og selv udregng AVG() først og blot bruge den som en konstant værdi i alle andre rækker, men hvis man tænker over det, er det heller ikke særligt pænt rent programmeringsmæssigt at returnere en konstant n gange.
Tjaa, men det er vel fordi du efterfølgende kan sætte kriterier op for dine andre ting i SELECT. Eksempelvis WHERE dato > blah. Så vil du få et reduceret datasæt, og hvad skal dit gennemsnit så beregnes for. Det reducerede datasæt eller alt i tabellen? Dette er jo ikke angivet. Jeg går ud fra det er derfor.
Synes godt om
Ny brugerNybegynder
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.