Hallo zusammen,
ich stehe gerade vor einem Problem wofür ich noch keine Lösung gefunden habe. Hierzu ein kleines vereinfachtes fitkives Beispiel:
Tabelle kunden
kundenid | name
---------------
1 | Peter
2 | Anna
Tabelle umsaetze
umsatzid | kundenid | storno | datum
---------------------------------
1 | 1 | 0 | 2001
2 | 1 | 1 | 2003
3 | 1 | 1 | 2004
4 | 1 | 0 | 2002
5 | 1 | 0 | 2005
Um jetzt Informationen zur Zahlungsmoral des Kunden zu bekommen würde ich jetzt folgende Abfrage schreiben:
SELECT k.*, COUNT(u.id) buchungen, COUNT(IF (u.storno=1, 1, NULL) stornos, COUNT(IF (u.storno=0, 1, NULL) umsaetze,
FROM affi_kunden k
LEFT JOIN affi_umsaetze u ON u.kunde=k.kundenid
GROUP BY k.kundenid
sollte etwas in der art ausgeben:
kundenid | name | buchungen | stornos | umsaetze
------------------------------------------------
1 | Peter| 5 | 2 | 4
2 | Anna | 0 | 0 | 0
gefällt mir bis hierhin nicht allzugut, aber sollte laufen. Anregungen und Verbesserungen gern Willkommen.
Mein eigentliches Prob. ist jetzt aber das ich wissen möchte wieviele Stornos bzw. Umsätze in folge gekommen sind. Also folgendes ...
kundenid | stornos_hintereinander | umsaetze_hintereinander
-----------------------------------------------------------
1 | 2 | 1
Aber wie? Bin offen für alle Vorschläge.
Vielen Dank