SELECT
*
FROM (
SELECT
dGebucht,
tArtikel.cArtNr,
Buchungen.kArtikel,
tWarenLagerPlatz.cName AS cWarenLagerPlatzName,
Buchungen.kWarenLagerPlatz,
tWarenLager.cName AS cWarenLagerName,
tWarenLagerPlatz.kWarenLager,
fAnzahl,
SUM(fAnzahl) OVER (PARTITION BY Buchungen.kArtikel, Buchungen.kWarenLagerPlatz ORDER BY dGebucht) AS fBestand
FROM
(
SELECT
dErstellt AS dGebucht, kArtikel, kWarenLagerPlatz, fAnzahl
FROM dbo.tWarenLagerEingang
UNION ALL (
SELECT
dErstellt AS dGebucht, kArtikel, kWarenLagerPlatz, -fAnzahl
FROM dbo.tWarenLagerAusgang
)
) AS Buchungen
LEFT JOIN dbo.tArtikel ON tArtikel.kArtikel = Buchungen.kArtikel
LEFT JOIN dbo.tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = Buchungen.kWarenLagerPlatz
LEFT JOIN dbo.tWarenLager On tWarenLager.kWarenLager = tWarenLagerPlatz.kWarenLager
) AS Foo
WHERE Foo.fBestand = 0