U8全阶BOM展开sql

4 篇文章 0 订阅

DECLARE @level INT 
SET @level= 1;  
WITH BomTree AS
(
SELECT bom.Version,c.ParentId AS TParentId,g.cinvcode as 母件编码,f.cinvcode AS 子件编码,f.bSelf,c.bomid,a.OpComponentId,a.ComponentId,b.wiptype,c.ParentId,0 AS LevelT ,bom.Status
FROM bom_bom bom 
LEFT JOIN bom_opcomponent a ON a.BomId = bom.BomId
LEFT JOIN bom_opcomponentopt b ON a.OptionsId=b.OptionsId
LEFT JOIN bom_parent c ON a.BomId=c.BomId
LEFT JOIN bas_part d ON a.componentid=d.partid  ---物料表跟子件关联
LEFT JOIN bas_part  e ON c.parentid=e.partid    ---物料表跟母件关联
LEFT JOIN inventory f ON d.invcode=f.cinvcode   ---子件
LEFT JOIN inventory g ON e.invcode=g.cinvcode   ---母件
WHERE 1=1 AND g.cInvCode='01003'
UNION ALL 
SELECT BomTree.Version,BomTree.ParentId AS TParentId,t1.母件编码,t1.子件编码,t1.bSelf,t1.bomid,t1.OpComponentId,t1.ComponentId,t1.wiptype,t1.ParentId,BomTree.LevelT + 1 as LevelT ,t1.Status
FROM BomTree
INNER JOIN (SELECT c.bomid,a.OpComponentId,a.ComponentId,b.wiptype,c.ParentId 
,g.cinvcode as 母件编码,f.cinvcode AS 子件编码,f.bSelf ,a1.Status
FROM bom_bom a1 INNER JOIN 
bom_opcomponent a ON a1.BomId = a.BomId
INNER JOIN bom_opcomponentopt b ON a.OptionsId=b.OptionsId
INNER JOIN bom_parent c ON a.BomId=c.BomId
INNER JOIN bas_part d ON a.componentid=d.partid  ---物料表跟子件关联
INNER JOIN bas_part  e ON c.parentid=e.partid    ---物料表跟母件关联
INNER JOIN inventory f ON d.invcode=f.cinvcode   ---子件
INNER JOIN inventory g ON e.invcode=g.cinvcode   ---母件
WHERE 1=1 
) t1 
ON  BomTree.ComponentId = t1.ParentId AND BomTree.LevelT<6 
)
SELECT *  FROM BomTree  ORDER BY LevelT

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值