单层级BOM零件及子件总用量统计SQL查询需求
SQL单级BOM零件总用量统计方案
需求说明
需要统计所有零件的总用量,父子件仅存在1级层级关系,无多层嵌套,需同时统计父件本身和对应子件的总用量。
样例表说明
表1 零件基础表(Table1)
存储所有零件的基础属性与初始用量,Type字段值为ind代表独立零件,无下属子件;值为parent代表父件,对应BOM表中下属子件:
PartNumber Type Qty abc01 ind 15 bsd90 ind 24 poi99 parent 10
表2 BOM结构表(Table2)
存储父件与子件的对应配比,QtyPerParent代表单个父件所需的对应子件数量:
Parent Children QtyPerParent poi99 poi01 2 poi99 poi02 1 poi99 poi03 5
预期输出结果
PartNumber Qty abc01 15 bsd90 24 poi99 10 poi01 20 poi02 10 poi03 50
实现SQL
通过UNION ALL拼接两部分数据:第一部分直接取所有零件本身的初始用量,第二部分关联父件总用量和子件单耗计算子件总用量:
-- 取所有零件本身的用量 SELECT PartNumber, Qty FROM Table1 UNION ALL -- 计算子件总用量:父件总数量 * 单个父件对应子件单耗 SELECT t2.Children AS PartNumber, t1.Qty * t2.QtyPerParent AS Qty FROM Table1 t1 INNER JOIN Table2 t2 ON t1.PartNumber = t2.Parent WHERE t1.Type = 'parent' ORDER BY PartNumber;
内容的提问来源于stack exchange,提问作者cjsellers30
相关产品推荐
相关产品推荐

