Hallo,
Ich habe 2 Tabellen aus denen ich folgende Information abrufen möchte: Zu einer bestimmten Produkt_id die sich in beiden Tabellen befindet, sollen alle Produkteingänge und Produkabgänge summiert werden und schließlich voneinander abgezogen um den Lagerbestand zu erhalten. Dazu habe ich bereits mit Hilfe anderer User folgende Abfrage:
SQL-Code:
select
((SELECT isnull(SUM(quantity),0) FROM productbookingpos
WHERE prod_ID = 1907
AND invalid =0)
-
(SELECT isnull(SUM(quantity),0) FROM invoicepos
WHERE prod_ID = 1907
AND invalid =0)) AS ERGEBNIS
Hierbei habe ich nun das Problem das ich keine Richtigen Werte bekomme wenn mein Produkt bzw. Produkt_id mehrere Ablaufdaten hat(expdates).
Um das Problem zu lösen habe ich nun folgendes gebastelt:
SQL-Code:
SELECT distinct expdate,isnull(SUM(quantity),0) as Input FROM productbookingpos
WHERE prod_ID = 1907 (beispiel)
AND invalid =0
GROUP BY expdate
SELECT distinct expdate,isnull(SUM(quantity),0) as Output FROM invoicepos
WHERE prod_ID = 1907 (beispiel)
AND invalid =0
GROUP BY expdate
Das Ergebnis sieht so aus:
Für den Produkteingang:
expdate quantity
04/04/30 98
04/12/30 361
10/10/30 72
Für den Produktausgang:
expdate quantity
04/04/30 97
04/12/30 359
Wie ist es nun möglich diese beiden Abfragen zusammenzuschmeißen und dabei pro expdate die Differenz als Lagerbestand zu bekommen.
Das mein Ergebnis also folgendermaßen aussieht:
expdate Restbestand
04/04/30 1
04/12/30 2
10/10/30 0 (oder aber garnichts angezeigt da ja kein passender Eintrag im Produtkausgang vorhanden ist)
Ich wär für alle Antworten sehr dankbar, da mich das ganz schon zu lange beschäftigt.
Ich arbeite mit dem SqlServer2000.
Hoffe einer wird schlau aus dem was ich geschrieben hab
mfg R.