Durch diese Zeilen
SQL-Code:
left join <---- NEU
VorgangPos on v.VgNr = VorgangPos.VgNr <---- NEU
bekommst Du im Select pro Vorgang soviele Zeilen, wie es Vorgangspositionen gibt. Dementsprechend wird beim Summieren dann auch der Betrag "zuviel summiert".
Kann es nicht testen, aber eventuell könnte das ein Ansatz sein:
SQL-Code:
select
v.VgNr,
v.brutto,
Offen,
LIST (VorgangPos.Artikel, ', ') as Positionen
from
(
select
v.VgNr,
v.brutto,
sum(case
when gegenkonto >= 10000 and gegenkonto <= 69999 then Betrag
when konto >= 10000 and konto <= 69999 then -Betrag
end)
as Offen
from
FibuBuchung b
left join
Vorgang v on b.vgnr = v.vgnr
group by
v.VgNr,
v.brutto
) a,
left join
VorgangPos on a.VgNr = VorgangPos.VgNr
order by
a.VgNr