Ok, die Überschrift mag etwas verwirrend klingen, aber mir ist nichts Besseres eingefallen :)
Zu meinem Problem:
ich habe eine Tabelle die folgende Spalten hat:
date | Wert (INT)
bei 'date' steht erwartungsgemäß ein Datum. Bei Wert irgendein Wert.
Ich möchte jetzt einen Select bauen, mit dem ich die Werte für die letzten 12 Monate in der Zeile des letzten Monats stehen habe. Beispiel:
date ------- | Wert | kumulierter 12-monats-wert
2010-01-01 | 1 | 1
2010-02-01 | 3 | 4
2010-03-01 | 6 | 10
2010-04-01 | 2 | 12
2010-05-01 | 3 | 15
2010-06-01 | 4 | 19
2010-07-01 | 1 | 20
2010-08-01 | 2 | 22
2010-09-01 | 3 | 25
2010-10-01 | 4 | 29
2010-11-01 | 5 | 34
2010-12-01 | 6 | 40 <- bis hierhin Summe aller Werte
2011-01-01 | 7 | 46 <- ab hier Summe aller Werte, die innerhalb der letzten 12 Monate liegen (hier zw. 2010-02-01 und 2011-01-01)
2011-02-01 | 8 | 50
2011-03-01 | 9 | 49
Ich kumuliere also am Anfang alle Werte, bis ich 12 Monate voll habe. danach kumuliere ich nurnoch diejenigen Werte, die innerhalb der letzten 12 Monate liegen.
Habt Ihr eine Idee, wie ich das NUR mit MySQL hinbekomme?
Ich kann ja keine einfache Summe bilden, und die nach Jahr groupen. Dann habe ich nur jedes Jahr kumulierte Werte. Ich brauche sie aber jeden Monat ;)
BTW: Ich habe so ein Problem schon einmal gelöst. Allerdings wenig zufriedenstellend. Ich habe einfach jede Zeile einzeln selektiert und dan mit UNION alles zusammengehaun. Aber das ist echt keine schöne Art :)
Zumal ich das Am Ende für 4 Jahre machen muss. D.h., dass der Select dann eeeeeewig lang wird. Das ist alles nicht zufriedenstellend...
Ich habe schon über stored procedures nachgedacht, aber da habe ich überhaupt keinen Durchblick O.o
Vielen Dank schon einmal für eure Hilfe.
|