So ginge es in Oracle, kenne nicht das Decode-Equivalent für Firebird:
SQL-Code:
Select
Sum(decode(Art,'S',Soll,0)) as Soll,
Sum(decode(Art,'H',Soll,0)) as Haben
From
(
select 'S' as Art, sum(BETRAG_S) as Soll
from tbl_buchhaltung where (Jahr = :Jahr) and (Monat = :Monat)
and Kontonummer = :Konto
and ((Kontonummer <> 9000) and (Gegenkontonummer <> 9000))
union
select 'H' as Art, SUM(BETRAG_H) as Haben
from tbl_buchhaltung where (Jahr = :Jahr) and (Monat = :Monat)
and Gegenkontonummer = :Konto
and ((Kontonummer <> 9000) and (Gegenkontonummer <> 9000))
)
Edit:
Wegen dem Parameter :Konto vermute ich mal, dass Statement wird in einem Programm ausgeführt. Dann würde ich vllt. dort die 9000 ausschließen und die Bedingung ((Kontonummer <> 9000) and (Gegenkontonummer <> 9000)) weglassen.