物料清单中的物料余额

时间:2018-07-06 15:10:45

标签: sql sql-server

我有Bom表

ItemCode  MatCode  Quantity 
 032490   M10506     3.0 
 032490   M10507     1.0
 032490   M10509     1.0
 030515   M10506     2.0
 030515   M10508     5.0
 045660   M10507     2.0
 045660   M10510     3.0

在物料表中,已装配物料的库存余额已知。

 ItemCode   StockBalance
  032490        10
  030515        15
  045660         8
  M10506     
  M10507     
  M10508     
  M10509     
  M10510

作为组装产品的一部分,我需要计算库存中所有物料(MatCode)的余额。因此在我的M10506示例中为10 * 3 + 15 * 2。

我一直坚持下去,循环查询,现在只有1级宝物,但是将来会有2级和3级宝物。

我的查询:

Select sum(item.StockBalance * bom.Quantity) from item 
 inner join bom on bom.ItemCode=item.itemcode
 Where  exists (select * from bom WHERE Item.itemCode = bom.ItemCode)
 Group by bom.ItemCode 

1 个答案:

答案 0 :(得分:2)

您的数据表明存在join和汇总:

select b.matCode, sum(b.quantity * i.StockBalance)
from bom b join
     item i
     on b.itemCode = i.itemCode
group by b.matCode;