Ich will aus einer Belegtabelle die Umsatzsumme nach Kunden gruppiert bekommen. In der Tabelle gibt es Belege für Rechnungen und Gutschriften, für den Umsatz muss ich die Summe der Gutschriften von der Summe der Rechnungen abziehen.
Ich beschreibe mal stark vereinfacht, was ich genau mache bzw. machen will.
Die Summe der Rechnungen pro Kunde bekomme ich mit:
SELECT Belege.Kunde , SUM(Belege.Betrag) AS Rechnungssumme FROM Belege WHERE Belege.Typ='RECHNUNG' GROUP BY Belege.Kunde
Die Gutschriften ganz ähnlich:
SELECT Belege.Kunde , SUM(Belege.Betrag) AS Rechnungssumme FROM Belege WHERE Belege.Typ='GUTSCHRIFT' GROUP BY Belege.Kunde
Jetzt hab ich mir gedacht um das in einem Rutsch zu machen könnte ich so vorgehen:
SELECT Beleg.Kunde , SUM(Belege.Betrag) - (SELECT SUM(Belege.Betrag) FROM Belege WHERE Belege.Typ='GUTSCHRIFT') FROM Belege WHERE Belege.Typ='Rechnung' GROUP BY Belege.Kunde
Was aber natürlich nicht das richtige Ergebnis bringt, da in dem SubSelect ja keine Beziehung zu dem gerade abgefragten Kunden besteht. Wie macht man sowas?
Ich arbeite mit einer Sybase Adaptive Server DB, was aber keine große Rolle spielen sollte, ist wohl mehr ein SQL- bzw. Logikproblem.
Danke fürs Lesen!
Gruß Thomas
Ich beschreibe mal stark vereinfacht, was ich genau mache bzw. machen will.
Die Summe der Rechnungen pro Kunde bekomme ich mit:
SELECT Belege.Kunde , SUM(Belege.Betrag) AS Rechnungssumme FROM Belege WHERE Belege.Typ='RECHNUNG' GROUP BY Belege.Kunde
Die Gutschriften ganz ähnlich:
SELECT Belege.Kunde , SUM(Belege.Betrag) AS Rechnungssumme FROM Belege WHERE Belege.Typ='GUTSCHRIFT' GROUP BY Belege.Kunde
Jetzt hab ich mir gedacht um das in einem Rutsch zu machen könnte ich so vorgehen:
SELECT Beleg.Kunde , SUM(Belege.Betrag) - (SELECT SUM(Belege.Betrag) FROM Belege WHERE Belege.Typ='GUTSCHRIFT') FROM Belege WHERE Belege.Typ='Rechnung' GROUP BY Belege.Kunde
Was aber natürlich nicht das richtige Ergebnis bringt, da in dem SubSelect ja keine Beziehung zu dem gerade abgefragten Kunden besteht. Wie macht man sowas?
Ich arbeite mit einer Sybase Adaptive Server DB, was aber keine große Rolle spielen sollte, ist wohl mehr ein SQL- bzw. Logikproblem.
Danke fürs Lesen!
Gruß Thomas