Einzelnen Beitrag anzeigen

polondo

Registriert seit: 1. Sep 2005
84 Beiträge
 
#1

problem mit komplizierter sql abfrage

  Alt 9. Aug 2006, 21:14
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.
  Mit Zitat antworten Zitat