| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 516 人关注过本帖
标题:[求助]有关sql 递归问题?
只看楼主 加入收藏
zhonghuazhifen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-8-10
收藏
 问题点数:0 回复次数:2 
[求助]有关sql 递归问题?
有这样的一个表:
create table bom
(
Pitemid varchar(20),
Itemid varchar(20),
Qty real
)
还有这样一个结构图:
A

B(2) C(3)

D(3) E(1) F(5) G(1)

H(2) L(10)

I(5)
通过分析得出这样的数据:
Pitemid itemid qty
A B 2
A C 3
B D 3
B E 1
D H 2
D L 10
H I 5
C F 5
C G 1
要用SQL 语句查询出这样的结果:
Itemid Qty
B 2
C 3
D 6
E 2
H 12
I 60
L 30
F 15
G 3
请哪位高手帮我解决一下~~~~
搜索更多相关主题的帖子: 递归 sql 
2006-08-10 23:25
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 

--Check the Qty of Item I

create table bom
(
Pitemid varchar(20),
Itemid varchar(20),
Qty real
)

insert into bom
select 'A','B',2 union all
select 'A','C',3 union all
select 'B','D',3 union all
select 'B','E',1 union all
select 'D','H',2 union all
select 'D','L',10 union all
select 'H','I',5 union all
select 'C','F',5 union all
select 'C','G',1
go
create function fn_test(@id varchar(20))
returns int
as
begin
declare @return int
select @id=Pitemid,@return=isnull(@return,1)*Qty from bom where itemid=@id
while @@rowcount!=0
select @id=Pitemid,@return=isnull(@return,1)*Qty from bom where itemid=@id
return (@return)
end
go
select Itemid,dbo.fn_test(Itemid) as Qty
from bom
order by itemid
go

drop table bom
drop function fn_test

Itemid Qty
-------------------- -----------
B 2
C 3
D 6
E 2
F 15
G 3
H 12
I 60
L 60




2006-08-11 10:16
zhonghuazhifen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-8-10
收藏
得分:0 
哦,我明白拉,谢谢高人指导啊~~
2006-08-16 23:59
快速回复:[求助]有关sql 递归问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016632 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved