GROUP lässt Zeilen weg?
am 14.12.2004 13:29:33 von Michael HaszprunarHallo NG,
Ich habe im Moment ein Problem. Ich habe eine Tabelle mit einer INT-Spalte
und eine DATE-Spalte.
Nun hätte ich gerne in einem bestimmten Monatsbereich den Durchschnittswert
der INT-Spalte. Das löse ich bereits mit TO_DAYS und AVG() und mache am
Schluss einen GROUP BY auf MONTH(datum).
ABER: Ist der Schnitt in einem Monat = 0 (also keine Datensätze, die der
WHERE Bedingung entsprechen), so gibt er mir nicht 0 aus, sondern lässt die
entsprechende Ergebniszeile einfach weg.
Meine Frage: Kann ich das irgendwie so schreiben, dass ich auch 0 Zeilen
bekomem oder mus ich das nachher per Script umständlich abfragen?
Vielleicht noch ein Beispiel (etwas vereinfacht):
SELECT MONTH( datum ) as 'monat', AVG(werte) as 'durchschnitt'
FROM results
WHERE
TO_DAYS( datum ) BETWEEN TO_DAYS( '2004-09-05' ) AND TO_DAYS( '2005-02-
12' ) AND
werte <> '-1'
GROUP BY monat
Das gibt mir z.B.:
+-------+--------+
| 10 | 34 |
+-------+--------+
| 11 | 65 |
+-------+--------+
| 12 | 23 |
+-------+--------+
Aber mir fehlen die Zeilen 09,01 und 02.
Merci für eure Hilfe, ich hoffe es gibt da eine Möglichkeit.
Thx,
Michael H:
--
GCS dx s+: a-- C++$ UL P+++(PHP) L+ E? W++ N++ o-- K- w O? M? V? PS PE Y+
PGP>+ t+ 5++(+++) X+(--) R+ tv+ b+++ Dl D+ G e+ h--(---) r++ y+
http://www.geekcode.com