Hallo zusammen,
ich habe mich noch ein wenig weiter beschäftigt und bin zu der Lösung gekommen, die ich wollte
Das verwendete Statement sieht wie folgt aus.
In der CTE bilde ich mir die Summen auf die Felder die ich brauche. Die CTE ist die Basis und schon so aufgebaut, wie sie sollte: d.h. es gibt Summen dank des ROLLING-Befehl der Menge und Paletten auf alle Gruppenfelder aus: Artikel(ist eh schon atomar) auf den Lieferschein und auf das Datum und zuletzt auf die Firma.
Anchließend wird die CTE wieder mit der Lieferscheindatei gejoint (um weitere Informationen zum Lieferschein zu ermitteln) und auf andere Dateien wie Kundenstamm Artikelstamm, Kundenstamm etc.
Anhand der GROUPING-Indikatoren gehe ich hin und gebe anstelle der Artikelbezeichung die Summenbezeichung aus.
Läuft gut und ist asd was ich haben wollte..
Code:
WITH Summe AS(
SELECT
FIRM, DATUM, LIEFSCHNR, ARTNR, SUM(MENG)
SUM(ANZP),
GROUPING(DATUM) AS SUGES, GROUPING(LIEFSCHNR) AS SUDAT, GROUPiNG(ARTNR) AS SULS
FROM
LSNRDATEI
WHERE
FIRM='AA' AND AUFART='XX'
GROUP BY FIRM, DATUM, LIEFSCHNR, ARTIKEL
with ROLLUP
ORDER BY FIRM, DATUM, LIEFSCHNR, ARTIKEL)
SELECT A.FIRM, B.AUFTRAGNR, A.LIEFSCHNR, C.CCG, B.KUNDE, D.NAME, D.STRASSE, D.PLZ, D.ORT, A.DATUM, A.ARTNR,
CASE
WHEN A.SUDAT ='1' THEN 'Summe Datum : '
WHEN A.SULS ='1' THEN 'Summe Lieferschein:'
ELSE
C.ARTIKELBEZ
END,
A.MENGE,
C.PALF, A.ANZP, A.SUDAT, A.SULS, A.SUGES
FROM Summe A
LEFT JOIN LSNRDATEI B ON FIRM=FIRMA AND LIEFSCHNR=LSNR
LEFT JOIN ARTIKELDATEI C On FIRM =AFIRMA and ARTNR=AARTNR
LEFT JOIN KUNDENSTAMM D ON FIRM=KFIRMA AND KUNDE=KKUNDE
Bookmarks