mysql-guy: (MySQL) Regelmäßigkeiten erkennen?

Beitrag lesen

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