mal abgesehen davon das man das Script optimieren kann. Du sprichst von Erlösen, aber was in deinem Scripten fehlt sind die eigentlichen Erlöse nach Erlöskonten. Es wird nicht gesplittet nach Ware, Lohn und Fracht. Aus buchalterischer Sicht werden die Erlöse ja verschiedenen Erlöskonten zugeordnet um dann daraus die Bilanz zu erstellen (vereinfacht ausgedrückt).
Ein kleiner Ansatz, der bestimmt nicht perfekt ist, aber die verschiedenen Erlöskonten berücksichtigt:
Code: Alles auswählen
SELECT
J.VRENUM as Rechnungsnummer,
DATE_FORMAT(J.RDATUM,'%d.%m.%Y') as Datum,
J.BSUMME as BruttoSumme,
J.NSUMME as NettoSumme,
J.MSUMME as MwStSumme,
if(J.BRUTTO_FLAG = 'N',
CASE JP.STEUER_CODE
WHEN 0 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_0/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 1 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_1/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 2 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_2/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 3 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_3/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
ELSE 0
END,
CASE JP.STEUER_CODE
WHEN 0 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 1 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 2 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 3 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
ELSE 0
END
) as 'Brutto-Erloes',
if(J.BRUTTO_FLAG = 'N',
CASE JP.STEUER_CODE
WHEN 0 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 1 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 2 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 3 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
ELSE 0
END,
CASE JP.STEUER_CODE
WHEN 0 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT ) )*JP.MENGE ),4),2)
WHEN 1 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)/((100+J.MWST_1)/100)),2)
WHEN 2 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)/((100+J.MWST_2)/100)),2)
WHEN 3 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)/((100+J.MWST_3)/100)),2)
ELSE 0
END
) as 'Netto-Erloes',
if(J.BRUTTO_FLAG = 'N',
CASE JP.STEUER_CODE
WHEN 0 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_0/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 1 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_1/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 2 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_2/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 3 THEN ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)*(J.MWST_3/100)),2)+ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
ELSE 0
END,
CASE JP.STEUER_CODE
WHEN 0 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)
WHEN 1 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)/((100+J.MWST_1)/100)),2)
WHEN 2 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)/((100+J.MWST_2)/100)),2)
WHEN 3 THEN ROUND(ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4),2)-ROUND((ROUND(SUM((JP.EPREIS-(JP.EPREIS/100*JP.RABATT))*JP.MENGE),4)/((100+J.MWST_3)/100)),2)
ELSE 0
END
) as 'MwSt-Erloes',
JP.GEGENKTO as 'Erloeskonto',
J.GEGENKONTO as 'Gegenkonto',
CASE JP.STEUER_CODE
WHEN 0 THEN '0'
WHEN 1 THEN '38060'
WHEN 2 THEN '0'
WHEN 3 THEN ''
END
as MwStKonto,
JP.STEUER_CODE as 'Steuer-Code',
CASE JP.STEUER_CODE
WHEN 0 THEN J.MWST_0
WHEN 1 THEN J.MWST_1
WHEN 2 THEN J.MWST_2
WHEN 3 THEN J.MWST_3
END
as MwStSatz,
if (J.WAEHRUNG = '€', 'EUR', (J.WAEHRUNG)) as 'Währung',
if (J.KUN_NAME1 = ' ', concat(J.KUN_NAME3,' (RE: ',J.VRENUM,')'), concat(J.KUN_NAME1,' ',J.KUN_NAME2)) as Buchungstext,
FROM
JOURNAL J, JOURNALPOS JP
LEFT JOIN ADRESSEN A ON A.REC_ID=J.ADDR_ID
WHERE(J.QUELLE IN(3,4)
and J.REC_ID=JP.JOURNAL_ID
and JP.ARTIKELTYP!='T'
and JP.EPREIS!=0
and JP.MENGE!=0
and JP.RABATT!=100
and MONTH(J.RDATUM)=MONTH(CURRENT_DATE)
and YEAR(J.RDATUM)=YEAR(CURRENT_DATE)
and J.QUELLE_SUB=1)
GROUP BY
J.REC_ID, JP.GEGENKTO, JP.STEUER_CODE
ORDER BY
J.VRENUM, J.RDATUM, J.KUN_NAME1