我有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
答案 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;