Gruppierung von Ausgaben für Dashboards

M.Pohlan

Benutzer
Beiträge
5
Guten Morgen,
ich habe folgendes Problem aus den drei Abfragen müsste eine Enstehen,

IST zustand
Die drei Abfragen stehen zurzeit als einzelne da und geben immer eine Kundengruppe aus.
Und dort Werden die Rechnungsbeträge summiert und von einem Tag zusammen gefasst, um dann in einem Dashboard als Kalenderwoche dann wieder geben zu können.


Die Abfragen:
Endkunde = select B.Datum, sum(B.Netto) AS Summe from Beleg AS B inner join KUNDEN AS K ON B.Adressnummer = K.Nummer where B.Belegtyp = 'R' AND K.Gruppe in ('10','20','30') Group by B.Datum

Fachhändler = select B.Datum, sum(B.Netto) AS Summe from Beleg AS B inner join KUNDEN AS K ON B.Adressnummer = K.Nummer where B.Belegtyp = 'R' AND K.Gruppe in ('40','50','70','80','90','101') Group by B.Datum

Sonderkunde = select B.Datum, sum(B.Netto) AS Summe from Beleg AS B inner join KUNDEN AS K ON B.Adressnummer = K.Nummer where B.Belegtyp = 'R' AND K.Gruppe in ('71') Group by B.Datum

SOLL zustand

wenn möglich muss daraus eine Abfrage gemacht werden die 4 Felder Ausgibt
| Datum | E_Summe | F_Summe | S_Summe |
 
Werbung:
Versuch es mal in einem Statement:
die where Kondition auf den kleinsten gemeinsamen Nenner zu bringen und die Summierung für alle 3 Felder mit den übrigen Bedingungen per Case When Statement durchzuführen.
Immer abhängig vom Summieren oder 0 ausgeben.
 
Wie muss ich die Case Fälle Schreiben ? bzw. wie sieht die Syntax aus ?
denn so kommen nur Fehlermeldungen.

select B.Datum, B.Netto, K.Gruppe
CASE WHEN K.Gruppe = ('10','20','30') THEN sum(B.Netto) AS E_Summe
WHEN K.Gruppe = ('40','50','70','80','90','101') THEN sum(B.Netto) AS F_Summe
WHEN K.Gruppe = ('71') THEN sum(B.Netto) AS S_Summe
END
FROM Beleg AS B inner join KUNDEN AS K ON B.Adressnummer = K.Nummer where B.Belegtyp = 'R'
 
Äh, welche Fehlermeldung(en)?

Das System kann meist besser SQL parsen, als der Mensch. Einfach die Meldungen nehmen und verstehen oder posten.
Was mir jedenalls auffällt: Eine Aggregatfunktion wie SUM erfordert auch eine Group By Clause. Hattest Du zuvor auch in den einzelnen Statements.
 
Werbung:
Zurück
Oben