Forum: Datenbanken
by Sir Rufo,
16. Jul 2016
Obwohl ich gerade sehe, dass es bei meinem Statement zu doppelten Zählungen kommen kann.
Ein union ist da unverzichtbar.
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
Forum: Datenbanken
by Sir Rufo,
16. Jul 2016
Hallo Herr Kollege,
da du keine Informationen zu den Namen deiner Tabellen angegeben hast, welche Namen hätte ich denn nehmen sollen?
Carl-Gustav-Günter-Seine-Frau-Ihre-Tabelle?
War mir aber zu lang zum tippen, also habe ich als Tabellennamen mal foo und bar gewählt. Du solltest deine Tabellen-Namen kennen. Wenn nicht, dann können wir dir gar nicht helfen.
Forum: Datenbanken
by Sir Rufo,
16. Jul 2016
So ungefähr wäre eine Mölichkeit
select id, sum( haben ) - sum( soll ) as saldo
from (
select bar.id as id, foo1.betrag as haben, foo2.betrag as soll
from bar
left join ( select id1 as id, betrag from foo ) foo1 on foo1.id = bar.id
left join ( select id2 as id, betrag from foo ) foo2 on foo2.id = bar.id ) as foobar
group by id