首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

各位幫忙,SQL Server2000編寫bom,该怎么解决

2012-01-31 
各位幫忙,SQL Server2000編寫bomBOM的簡單結構為:A(B,C),C(D,E)E(F,G)要求輸入A數量,直接生成一個TABLE表,

各位幫忙,SQL Server2000編寫bom
BOM的簡單結構為:A(B,C),   C(D,E)   E(F,G)
要求輸入A數量,直接生成一個TABLE表,顯示物料清單B,C,D,E,F,G
請教各位大俠,謝謝!


[解决办法]
--這個嗎?
create table T (parent_part varchar(10),child_part varchar(10))
insert into T
select 'A ', 'B ' union all
select 'A ', 'C ' union all
select 'C ', 'D ' union all
select 'C ', 'E ' union all
select 'E ', 'F ' union all
select 'E ', 'G '

GO
/*建立function,查找指定節點的所有子結點*/
Create function fn_bom(@parent varchar(10))
returns @t table(part varchar(10),level int)
AS
begin
declare @level int
set @level=1
insert into @t select @parent,@level
while @@rowcount> 0
begin
set @level=@level+1
insert into @t
select a.child_part,@level
from T a,@t b
where a.parent_part=b.part
and b.level=@level-1
end
return
end
GO

--找出A的子結點
select part from dbo.fn_bom( 'A ')
where level> 1
/*
part
----------
B
C
D
E
F
G
*/

drop table t
drop function fn_bom

热点排行