Neu Lagermengen im Streckenlager per SQL

thowi

Sehr aktives Mitglied
8. Juni 2018
433
66
Hallo zusammen,

ich möchte gerne die Summe aller Mengen per SQL bekommen, die aktuell im Streckenlager liegen.
Dazu habe ich mir folgendes SQL erstellt:
SQL:
SELECT
    LBP2.fMenge
    FROM tUmlagerung U
    INNER JOIN tLieferantenbestellung LB2 ON U.kLieferantenbestellung = LB2.kLieferantenbestellung
    INNER JOIN tLieferantenBestellungPos LBP2 ON LB2.kLieferantenBestellung = LBP2.kLieferantenBestellung
    WHERE U.nStatus = 2
Soweit so gut.

Nun mein Problem:
Die Umlagerungen sollten doch eigentlich in der tLieferantenBestellung liegen. Dort habe ich auch Umlagerungen drin - aber lange nicht alle. Zwischendurch fehlen immer mal wieder welche:

Bildschirmfoto 2018-09-06 um 13.16.54.jpg

Konkret such ich z.B. die Nummer 15.
Kann mir jemand von euch sagen, woran das liegt? Warum werden bestimmte Umlagerungen woanders gespeichert und wenn ja, wo?

Danke für eure Hilfe!
 

thowi

Sehr aktives Mitglied
8. Juni 2018
433
66
Ich habe nun eine Lösung gefunden:
SQL:
SELECT
ISNULL(MengeLBP,0)+ISNULL(MengeB,0)
FROM tUmlagerung U
LEFT JOIN tLieferantenbestellung LB2 ON U.kLieferantenbestellung = LB2.kLieferantenbestellung
LEFT JOIN ( SELECT fMenge AS 'MengeLBP', kLieferantenBestellung, kArtikel
FROM tLieferantenBestellungPos )
AS LBP2 ON LB2.kLieferantenBestellung = LBP2.kLieferantenBestellung AND LBP2.kArtikel = MAX(A.kArtikel)
LEFT JOIN tBestellung B ON U.kBestellung = B.kBestellung
LEFT JOIN ( SELECT nAnzahl AS 'MengeB', tBestellung_kBestellung, tArtikel_kArtikel
FROM tbestellpos )
AS BP ON B.kBestellung = BP.tBestellung_kBestellung AND BP.tArtikel_kArtikel = MAX(A.kArtikel)
WHERE U.nStatus = 2

Ist es korrekt, dass Umlagerungen sowohl bei Lieferantenbestellungen, als auch Bei Kundenbestellungen liegen? Damit muss man 5 Tabellen abfragen... die beiden Bestellungen samt ...pos und die tUmlagerung.
Was ist denn da für ein höherer Sinn hinter?