Hallo Karl,
hier das um das Projekt erweiterte Statement des 150-er Berichtes:
SELECT
a.name,
a.lieferantennummer,
p.abkuerzung as Projekt,
ROUND(SUM(rp.umsatz_netto_einzeln*(rp.menge-IFNULL(gp.menge,0))),2) AS umsatz,
ROUND(SUM(rp.umsatz_netto_einzeln*(rp.menge-IFNULL(gp.menge,0))*((100+rp.rabatt)/100)),2) AS umsatzohnerabatt,
ROUND(SUM(rp.umsatz_netto_einzeln*(rp.menge-IFNULL(gp.menge,0))*((rp.rabatt)/100)),2) AS gesamtrabatt,
ROUND(SUM(rp.deckungsbeitrag),2) AS deckungsbeitrag,
ROUND(SUM(rp.einkaufspreis*(rp.menge-IFNULL(gp.menge,0))),2) AS ek,
ROUND(SUM(rp.menge-IFNULL(gp.menge,0)),0) AS menge,
IF('{GRUPPIERUNG}'='tag', DATE_FORMAT(r.datum,'%d.%m.%Y'),
IF('{GRUPPIERUNG}'='woche',CONCAT('KW ',WEEK(r.datum),' (',YEAR(r.datum),')'),
IF('{GRUPPIERUNG}'='monat',DATE_FORMAT(r.datum,'%m.%Y'),
IF('{GRUPPIERUNG}'='quartal',CONCAT(QUARTER(r.datum),'.',YEAR(r.datum)),
YEAR(r.datum))))) AS datum,
r.waehrung AS waehrung
FROM rechnung r
JOIN rechnung_position rp on r.id = rp.rechnung
JOIN artikel ar ON ar.id = rp.artikel
JOIN adresse a ON ar.adresse = a.id
JOIN projekt p on r.projekt = p.id
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 IF('{VON}'='0',1,r.datum>=date('{VON}')) AND IF('{BIS}'='0',1,r.datum<=date('{BIS}'))
GROUP BY a.id, r.waehrung, p.abkuerzung, CONCAT(MONTH(r.datum),'.',YEAR(r.datum)),
IF('{GRUPPIERUNG}'='tag',r.datum,
IF('{GRUPPIERUNG}'='woche',WEEK(r.datum),
IF('{GRUPPIERUNG}'='monat',MONTH(r.datum),
IF('{GRUPPIERUNG}'='quartal',QUARTER(r.datum),
YEAR(r.datum)))))
Allerdings möchte ich eine kleine Warnung hinterher schicken: Gutschriftenumsätze werden in dem Bericht ausschließlich über einen direkten Auftragspositionsbezug ausgegeben. Beispiel: Rechnungsumsatz am 30.1. Gutschrift wird aber erst am 2.3. verbucht. Wenn der Bericht zwischen dem 31.1. und 1.3. abgerufen wird, ist der Januarumsatz der volle Rechnungsbetrag. Ab dem 3.3. jedoch reduziert sich der JANUAR-Umsatz um die Gutschrift.
Ich halte das Vorgehen für nicht sinnvoll und würde eher monatliche positive RE-Umsätze - und negative Gutschriftenumsätze ausgeben. Wenn du da Interesse hast, kannst du dich gerne melden.
Grüße
Knut