Einzelnen Beitrag anzeigen

TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.893 Beiträge
 
Delphi 12 Athens
 
#6

Re: SQL: FULL OUTER JOIN mit sich selbst

  Alt 6. Mär 2009, 11:58
Du brauchst im Grunde 3 Datenmengen, die Du zusammenjoinen mußt:
  • alle Debitoren, die in mindestens einem der beiden Jahre Umsatz gemacht haben (a)
  • Umsätze der Debitoren im aktuellen Jahr (b)
  • Umsätze der Debitoren im Vorjahr (c)

Diese Daten kannst Du alle aus dbo.DBRechnung gewinnen.
Beispiel:
SQL-Code:
SELECT a.DEBITOR_ID,
       sum (b.Umsatz) AktUmsatz,
       sum (c.Umsatz) OldUmsatz
  FROM dbo.DBRechnung a
    LEFT JOIN dbo.DBRechnung b on ((b.DEBITOR_ID=a.DEBITOR_ID) AND (b.JAHR_ID = :AktJahr))
    LEFT JOIN dbo.DBRechnung c on ((c.DEBITOR_ID=a.DEBITOR_ID) AND (c.JAHR_ID = :AktJahr - 1))
  WHERE a.JAHR_ID in (:AktJahr, :AktJahr - 1)
  GROUP BY a.DEBITOR_ID
Ich habe da die Artikel und den Monat rausgelassen. wenn Du das Ganze auch noch artikelweise und/oder monatsweise auswerfen willst, muss entsprechend ergänzt werden.

Gruß
Thomas

PS: Trocken runtergeschrieben, ungetestet
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat