Abfrage nach Datum und mit WHERE-Clause
Bernd
- datenbank
Hallo!
Ich habe eine mySQL-DB, die so ist:
DATUM | VON | AN
--------------------
01.12. | 230 | 400
01.12. | 111 | 333
02.12. | 435 | 400
02.12. | 287 | 400
02.12. | 972 | 345
usw...
Ich möchte nun ein Abfrage starten, die mir für jedes DATUM alle Treffer (als SUMME) ausgibt, wo im AN-Feld '400' steht.
Im Beispiel müsste die Ausgabe also so sein:
DATUM | SUMME
------------------
01.12. | 1
02.12. | 2
Mein Problem: ich bin nicht geübr in SQL und habe leider nicht die geringste Ahnung, wie ich das realisieren könnte. Geht das überhaupt??
Danke, Bernd
yo,
select datum, count(*) AS Summe
FROM tabllen_name
WHERE an = '400'
GROUP BY datum
Ilja
Hey, das ging flott!! Und tatsächlich, es funktioniert!
Das "Group By" macht, dass das Datum kommuliert wird, oder? Ich hatte es mit "Distinct" versucht, bn aber nicht weitergekommen.
yo,
Das "Group By" macht, dass das Datum kommuliert wird, oder?
nicht ganz, die group by klausel sorgt dafür, dass gleiche werte in der spalte datum, als eine gruppe behandelt werden, deswegen auch der treffende name "gruppiere nach".
der count zählt dann jede gruppe für sich betrachtet nach seiner anzahl an mitglieder der jeweiligen gruppe. beides zusammen macht also die magie aus, der group by und dann die aggregat-funktion (gruppen-funktion) count()
Ich hatte es mit "Distinct" versucht, bn aber nicht weitergekommen.
DISTINCT filtert nur datensätze, die in jeder spalten identisch sind, kann aber keine gruppen bilden.
Ilja
Aaaaahhhhh! Danke nochmal!
Hi,
Ich möchte nun ein Abfrage starten, die mir für jedes DATUM alle Treffer (als SUMME) ausgibt, wo im AN-Feld '400' steht.
wie man das direkt in mysql macht, weiß ich nicht. Aber du könntest dir alle Treffer ausgeben lassen und diese dann mit PHP zählen. Anschließend würdest du nur die Summe ausgeben.
Bsp.:
SELECT AN WHERE AN = '400' AND DATUM = '01.12.'
Dies sortiert dir dann ja alle AN 400er Felder für das Datum 01.12.heraus.
Jetzt kannst du per PHP prüfen wie viele es sind. Dies geht so:
$result = mysql_query($sql);
$zeilen = mysql_num_rows($result);
Anschließend kannst du dann einfach $zeilen ausgeben und du hast die Anzahl wie oft AN0400 bei einem bestimmten Datum vorkommt
tschau brockerdocker
Hi auch!
Wirst lachen (oder auch nicht), aber das dachte ich mir in meiner "Verzweiflung" auch schon :-)