ASchueltke
Grünschnabel
Hallo zusammen,
ich hab gerade irgendwie n Hänger und komme nicht weiter.
Eigentlich ist das Problem simpel, hört sich zumindest für mich so an.
Aber heute komm ich nicht weiter, obwohl SQL - naja nicht täglich Brot aber -schon öfters von mir verwendet wird.
Ich möchte zu jeder Status Bezeichnung (Tabelle: status) die Anzahl des jeweiligen Vorkommens in Tabelle daten
UND wenn keiner gefunden wurde soll da die 0 oder NULL stehen. Sprich alle bez aus status sollen ausgegeben werden plus zahl.
tb: status
id bez
1 status1
2 status2
3 status3
tb:daten
id status datum
1 status1 2013-06-06
2 status1 2013-06-06
3 status2 2013-06-06
4 status2 2013-06-06
5 status2 2013-06-05
Als Ergebnis will ich:
status1 2
status2 3
status3 0
Mein bester Versuch war
Da funktioniert es, allerdings wenn ich das Datum mit einbeziehe nicht mehr
Funktioniert auch bis auf die gewünschte Ausgabe status3 mit 0 oder auch NULL
Vielleicht kann mir ja einer auf die Sprünge helfen.
Danke und viele Grüße aus dem Sauerland
Andre
ich hab gerade irgendwie n Hänger und komme nicht weiter.
Eigentlich ist das Problem simpel, hört sich zumindest für mich so an.
Aber heute komm ich nicht weiter, obwohl SQL - naja nicht täglich Brot aber -schon öfters von mir verwendet wird.
Ich möchte zu jeder Status Bezeichnung (Tabelle: status) die Anzahl des jeweiligen Vorkommens in Tabelle daten
UND wenn keiner gefunden wurde soll da die 0 oder NULL stehen. Sprich alle bez aus status sollen ausgegeben werden plus zahl.
tb: status
id bez
1 status1
2 status2
3 status3
tb:daten
id status datum
1 status1 2013-06-06
2 status1 2013-06-06
3 status2 2013-06-06
4 status2 2013-06-06
5 status2 2013-06-05
Als Ergebnis will ich:
status1 2
status2 3
status3 0
Mein bester Versuch war
SQL:
SELECT status.bez, count(daten.id) FROM status
LEFT join daten ON daten.status = status.bez
GROUP by status.bez
Da funktioniert es, allerdings wenn ich das Datum mit einbeziehe nicht mehr
SQL:
SELECT status.bez, count(daten.id) FROM status
LEFT join daten ON daten.status = status.bez
WHERE daten.datum LIKE '2013-06%'
GROUP by status.bez
Funktioniert auch bis auf die gewünschte Ausgabe status3 mit 0 oder auch NULL
Vielleicht kann mir ja einer auf die Sprünge helfen.
Danke und viele Grüße aus dem Sauerland
Andre
Zuletzt bearbeitet: