2016-11-09 2 views
0

Ich versuche gerade, Produktcode und Bewegung auszugeben, um eine vollständige Historie zu zeigen, wie viele Produkte wir verkauft haben.Berechnung der Bestandsbewegung Geschichte

Ich habe zwei Tabellen PUB.movement und PUB.product

Ich habe es dieses

SELECT a."prod-code" AS productcode, count(*) AS Movement 
FROM  (SELECT mov."tran-date", pro."prod-code" 
      FROM  PUB."movement" mov,    
        PUB."product" pro 
      WHERE mov.SKU=pro.SKU 
      AND  mov."move-type" = 'i' 
      AND  pro."prod-group" like 'SLA%') a 
GROUP BY a."prod-code" 
weit gemacht

Der Ausgang erzeugt ist:

PRODUCTCODE | MOVEMENT 
0490786   1 
0500012   1 
0566003   1 
0566004   1 
0650594   1 
0920127   1 
0920154   1 
1000557M1  1 
1000578M1m  19 

Das einzige Problem, das ich habe ist, wenn mehr als Wird zu diesem Zeitpunkt fakturiert, zählt nur diese Rechnung als 1, nicht die in Rechnung gestellte Menge. Es gibt eine qty Spalte in PUB.movement. Ich kann es einfach nicht mit der aktuellen Abfrage integrieren, um die korrekte Bestandsbewegung auszugeben.

Antwort

1

Klingt, als ob Sie ein SUM() des qty Feldes lieber als eine Anzahl von Bewegungen möchten? Versuchen Sie Folgendes:

Select pro."prod-code" As productcode, Sum(mov.qty) As Movement 
    From PUB.movement As mov 
    Inner Join PUB.product As pro On mov.SKU = pro.SKU 
    Where mov."move-type" = 'i' 
    And pro."prod-group" like 'SLA%' 
    Group By pro."prod-code"; 
+0

Danke, versuchte Ihre Lösung, aber bekomme eine Spalte nicht gefunden/angegebenen Fehler. – Ninsaki

+0

@Ninsaki Tippfehler behoben – mendosi

+0

Großartig! hat ein Vergnügen gemacht. Musste nur SUM (mvt.qty) in SUM (qty) ändern – Ninsaki