Obwohl ich gerade sehe, dass es bei meinem Statement zu doppelten Zählungen kommen kann.
Ein union ist da unverzichtbar.
SQL-Code:
select konto.id, sum( buch.haben ) - sum( buch.soll ) as saldo
from konto
left join (
select id1 as id, betrag as haben, 0 as soll from buchung
union
select id2 as id, 0 as haben, betrag as soll from buchung ) as buch
on buch.id = konto.id
group by konto.id
Hier mal ein
SQLFiddle dazu
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)