2016-11-09 46 views
0

我目前正在尝试输出产品代码和移动以显示我们销售的产品数量的完整历史记录。计算库存移动历史

我有两个表PUB.movementPUB.product

我做了这么远

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" 

产生的输出是:

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

我唯一的问题是,如果超过当时有人开具发票时仅将发票计为1,而不是发票数量。在PUB.movement中有qty列。我只是不能将它与当前查询结合以输出正确的库存移动。

回答

1

听起来像是你想qty字段的SUM()而不是运动计数?试试这个:

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

谢谢,试过你的解决方案,但得到一个列未找到/指定的错误。 – Ninsaki

+0

@Ninsaki错字固定 – mendosi

+0

太棒了!工作过一种享受。只需要将SUM(mvt.qty)更改为SUM(数量) – Ninsaki