22,209
社区成员
发帖
与我相关
我的任务
分享
select 1 id,'000-AIM-A-001' 编号,3 数量, NULL 上级编号,1 价格
into SYS2BOM
union all select 2,'Z1SANO01' ,2, '000-AIM-A-001', 2
union all select 3,'Z1AMPB00' ,2, '000-AIM-A-001', 4
union all select 4,'Z1MSKC24' ,3, '000-AIM-A-001', 2
union all select 5,'K00049A3' ,2, 'Z1SANO01', 3
union all select 6,'K00050A3' ,2, 'Z1SANO01', 5
union all select 7,'10SANC15' ,3, 'Z1AMPB00', 3
union all select 8,'1SANN37' ,3, 'Z1AMPB00', 2
select * from SYS2BOM order by id
;with 成本 as
( select 编号 本级编号,编号,1 数量 , 1 上级数量, 上级编号, 价格, 成本 = 价格
from SYS2BOM
Union all
select C.本级编号,S.编号, S.数量,C.数量*S.数量, S.上级编号, S.价格, 成本 = C.数量*S.数量*S.价格
from SYS2BOM S
join 成本 C on S.上级编号 = C.编号
)
select S.*,总价格=成本,总成本=成本*数量
from (
select 本级编号,sum(成本) 成本
from 成本
group by 本级编号)a
join SYS2BOM S on a.本级编号 = S.编号
order by id
drop table SYS2BOM