WITH BOM(Father,ItemCode,Quantity,iLevel)
AS
(
SELECT T0.Code,T1.Code ,CONVERT(NUMERIC(23,15), T1.Quantity/T0.Qauntity) Quantity , 1 iLevel
FROM OITT T0
JOIN ITT1 T1 ON T0.Code = T1.Father
UNION ALL
SELECT T0.Father,T2.Code,CONVERT(NUMERIC(23,15),(T2.Quantity/T1.Qauntity)*T0.Quantity) ,T0.iLevel+1
FROM BOM T0
JOIN OITT T1 ON T0.ItemCode = T1.Code
JOIN ITT1 T2 ON T1.Code = T2.Father
)
通过CTE直接生成产品到最终材料的"用量", 是否满足你的需求?
|