Hallo Leute,
ich habe eine MYSQL Tabelle nach folgendem Muster:
Gesamt ist eine fortlaufende Summe aus div. unterschiedlichen Spalten, die ich hier gesondert ablege.
Code:
ID|Datum |Betrag|Gesamt
---------------------------
1 |2013-01-25|-10.00|-25.50
2 |2013-02-10| 12.00|-13.00
3 |2014-05-20|-25.00|-38.00
4 |2014-09-08| 40.00| 2.00
usw...
Nun möchte ich daraus die Daten so zusammenfassen, dass jeweils am Monatende eine Bilanz des
laufenden Jahres und des Vorjahres dargestellt wird. Zusätzlich soll die Gesamtsumme am Ende
des jeweiligen Monats angezeigt werden.
Code:
Monat|Jahr |Vorjahr|Gesamt
----------------------------
01 |-13.78 |-25.68 | 0.00
02 | 71.79 | 11.03 | 0.00
03 | 13.80 | 30.86 | 0.00
04 | 2.45 | 43.94 | 0.00
05 | 87.19 |-38.46 | 0.00
06 |-68.90 | 72.43 | 0.00
07 |-70.74 |-95.85 | 0.00
08 | 64.14 | 4.90 | 0.00
09 |-18.37 | 16.52 | 0.00
10 | 0.00 | 61.45 | 0.00
11 | 0.00 | 45.55 | 0.00
12 | 0.00 | 39.17 | 0.00
Ich habe dazu bisher folgenden MySQL Code, mit dem bis auf die Gesamtsumme auch alles funktioniert.
Code:
SELECT
DATE_FORMAT(Datum, '%m') as monat,
SUM(IF(DATE_FORMAT(Datum, '%Y') = '2014', Betrag, 0.00)) AS jahr,
SUM(IF(DATE_FORMAT(Datum, '%Y') = '2013', Betrag, 0.00)) AS vorjahr,
IF(DATE_FORMAT(Datum, '%Y') = '2014', gesamt, 0) AS gesamt
FROM kb_eintrag
LEFT JOIN (
SELECT
DATE_FORMAT(datum,'%m') AS d,
MAX(DATE_FORMAT(datum,'%d')) AS dmax,
MAX(Eintrag_ID) AS ID
FROM kb_eintrag
WHERE DATE_FORMAT(Datum, '%Y') = '2014'
GROUP BY DATE_FORMAT(Datum,'%m')
ORDER BY NULL
) m
ON DATE_FORMAT(Datum,'%Y-%m') = m.d
AND Eintrag_ID = m.ID
WHERE DATE_FORMAT(Datum, '%Y') BETWEEN '2013' AND '2014'
AND Kategorie > 1
GROUP BY DATE_FORMAT(Datum, '%m')
ORDER BY DATE_FORMAT(Datum, '%m') ASC
Wer kann mir dabei helfen?