--示例数据
create table tb(父物料 varchar(10),子物料 varchar(10))
insert tb select 'A1','B1'
union all select 'A1','B2'
union all select 'A1','B3'
union all select 'B1','C1'
union all select 'B1','C2'
union all select 'C1','D1'
union all select 'C1','D2'
go
--查询自定义函数
create function f_cid(
@物料 varchar(10)
)returns @re table(物料 varchar(10),[level] int)
as
begin
declare @l int
set @l=0
insert @re select 子物料,@l from tb where 父物料=@物料
while @@rowcount>0
begin
set @l=@l+1
insert @re select a.子物料,@l
from tb a,@re b
where a.父物料=b.物料 and b.[level]=@l-1
end
return
end
go
--查询物料A1的物料
select * from f_cid('A1')
go
--删除测试
drop table tb
drop function f_cid
/*--结果
物料 level
---------- -----------
B1 0
B2 0
B3 0
C1 1
C2 1
D1 2
D2 2
(所影响的行数为 7 行)
--*/
BOM展开SQL语句
最新推荐文章于 2023-03-30 17:48:34 发布