MySQL Komplexe Abfrage

just4you

New member
24 Februar 2011
4
6
Hallo,
ich habe ein relativ einfaches Problem, welches mit MySQL aber nicht so einfach zu lösen scheint... Ich bekomme es jedenfalls nicht hin und bitte um Hilfe..

Ich habe eine Tabelle mit ID, Datum und einer Zahl...

Nun möchte ich pro ID die Summe der letzten 3 Zahlen nach Datum absteigend sortiert...

Bsp:
Tabelle
ID | Datum | Zahl
1 | 01-01-2011 | 1
1 | 02-01-2011 | 2
1 | 03-01-2011 | 3
1 | 04-01-2011 | 4
2 | 02-01-2011 | 5
2 | 03-01-2011 | 6
2 | 04-01-2011 | 7
2 | 05-01-2011 | 8

Ergebnis
ID | Summe der letzten Tage
1 | 9
2 | 21

Also Zahlen der letzten 3 Tage der ID 1 sind 2,3,4 = 9
Zahlen der letzten 3 Tage der ID 2 sind 6,7,8 = 21

Kriegt jemand das entsprechende SQL-Statement hin?
Danke schonmal :)
 
Code:
SELECT SUM(Zahl) as "Summe der letzen Tage" FROM Tabelle GROUP BY ID ORDER BY Datum

Das wars leider nicht... Denn da fehlt die Summe der letzten 3 Tage... Das "ORDER BY Datum" macht in dieser Abfrage meines Erachtens auch keinen Sinn, da nur die Gesamtsumme pro ID ausgegeben wird...
 
Sollen es die letzten drei Einträge oder die letzten drei Tage sein?

Im Endeffekt sollte nämlich folgendes funktionieren:
Code:
SELECT id, SUM(zahl) AS summe
FROM tabelle
WHERE datum > NOW() - INTERVAL 3 DAY
GROUP BY id
Das wären die letzten drei Tage, aber nicht zwingend die letzten drei Einträge...
 
Sollen es die letzten drei Einträge oder die letzten drei Tage sein?

Im Endeffekt sollte nämlich folgendes funktionieren:
Code:
SELECT id, SUM(zahl) AS summe
FROM tabelle
WHERE datum > NOW() - INTERVAL 3 DAY
GROUP BY id
Das wären die letzten drei Tage, aber nicht zwingend die letzten drei Einträge...

Deshalb das Beispiel...
Wenn du so willst also die letzten 3 Einträge jeder ID... Denn es kann sein, dass der letzte Eintrag länger als 3 Tage zurückliegt...