Einzelnen Beitrag anzeigen

einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#5

AW: Firebird : Alle Daten von links und von rechts

  Alt 2. Nov 2016, 13:26
Hallo,

mit Firebird habe ich noch nichts gemacht. Aber ähnliche Aufgabenstellungen habe ich öfters mit Oracle umgesetzt. Du brauchst für die textuell beschriebene Aufgabe nur ein INNER JOIN um die beiden Tabellen zu verknüpfen. Bei deinem SQL habe ich auch nach mehrmaligem Anlauf nicht die Aufgabenstellung wiedergefunden. Ich versuche das mal sehr vereinfacht ohne Tabelle ACCT, mit Parametern StartDatum und EndDatum und bei Tabelle GL mit den angenommenen Spalten:
Debit, Credit, Datum


Code:
SELECT
  SUM(A.DEBIT_ALT- A.CREDIT_ALT) SaldoAlt,
  SUM(A.DEBIT_NEU) Debit,
  SUM(A.CREDIT_NEU) Credit,
  SUM(A.DEBIT_ALT- A.CREDIT_ALT+ A.CREDIT_NEU- A.CREDIT_NEU) SaldoNeu
FROM
  ( SELECT
      CASE WHEN GL.DATUM < :StartDatum THEN GL.DEBIT ELSE 0 END DEBIT_ALT,
      CASE WHEN GL.DATUM < :StartDatum THEN GL.CREDIT ELSE 0 END CREDIT_ALT,
      CASE WHEN (GL.DATUM >= :StartDatum) AND (GL.DATUM < :EndDatum) THEN GL.DEBIT ELSE 0 END DEBIT_NEU,
      CASE WHEN (GL.DATUM >= :StartDatum) AND (GL.DATUM < :EndDatum) THEN GL.CREDIT ELSE 0 END CREDIT_NEU
    FROM
      GL
  ) A
Ist jetzt ungetestet. Und es fehlt bestimmt ein GROUP BY um die Zahlen per Konto zu bekommen.
Mit freundlichen Grüßen, einbeliebigername.
  Mit Zitat antworten Zitat