Skip to main content

Hi, ich habe mir einen Bericht für den Umsatz der letzten 12 Monate erstellt. Dazu im Vergleich die Umsätze des jeweiligen Vorjahres-Monat. Leider funktioniert die Funktion von “Spalten aufsummieren” nicht. Weiß jemand woran das liegen kann?

Hier der Bericht:

 

SELECT
DATE_FORMAT(r.datum, '%b %Y') AS datum,
FORMAT(SUM(rp.umsatz_netto_einzeln * (rp.menge - IFNULL(gp.menge, 0))), 2, 'de_DE') AS umsatz,
FORMAT((
SELECT SUM(rp2.umsatz_netto_einzeln * (rp2.menge - IFNULL(gp2.menge, 0)))
FROM rechnung_position rp2
LEFT JOIN gutschrift_position gp2 ON rp2.auftrag_position_id = gp2.auftrag_position_id
JOIN rechnung r2 ON rp2.rechnung = r2.id
WHERE r2.waehrung = 'EUR'
AND r2.status <> 'angelegt' AND r2.status <> 'storniert'
AND r2.datum >= DATE_FORMAT(DATE_SUB(r.datum, INTERVAL 1 YEAR), '%Y-%m-01')
AND r2.datum <= LAST_DAY(DATE_SUB(r.datum, INTERVAL 1 YEAR))
AND IF('{PROJEKT}' = '-', 1, '{PROJEKT}' = p.abkuerzung)
), 2, 'de_DE') AS vorjahres_umsatz,
r.waehrung AS waehrung
FROM projekt p
JOIN rechnung r ON r.projekt = p.id
JOIN rechnung_position rp ON r.id = rp.rechnung
LEFT JOIN (
SELECT gp.auftrag_position_id, SUM(gp.menge) AS menge
FROM gutschrift_position AS gp
JOIN gutschrift g ON gp.gutschrift = g.id
WHERE gp.auftrag_position_id <> 0
AND g.status <> 'angelegt' AND g.status <> 'storniert'
GROUP BY auftrag_position_id
) AS gp ON rp.auftrag_position_id = gp.auftrag_position_id
WHERE r.status <> 'angelegt' AND r.status <> 'storniert'
AND r.waehrung = 'EUR' -- Nur Umsätze in EUR berücksichtigen
AND r.datum >= DATE_FORMAT(NOW() - INTERVAL 11 MONTH, '%Y-%m-01') -- Letzte 11 Monate einschließlich des aktuellen Monats
AND r.datum <= LAST_DAY(NOW()) -- Aktueller Monat
AND IF('{PROJEKT}' = '-', 1, '{PROJEKT}' = p.abkuerzung)
GROUP BY DATE_FORMAT(r.datum, '%b %Y'), r.waehrung
ORDER BY r.datum DESC -- Sortierung nach Monaten in absteigender Reihenfolge

 

Hallo, 

du formatierst die Beträge im SQL ins deutsche Format. Nimm diese raus und stell die Formatierung bei Bedarf auch in den Berichtseinstellungen der Spalten ein. 

Dann sollte es klappen. 


Antworten