急!在线等一SQL查询问题!

w_jiao189 2007-09-16 11:52:34
一张数据表
yh_gx(id,yh_id,p_id)
yh_id 是用户号,p_id是用户的上级领导编号

id yh_id p_id
1 001 002
2 003 001
3 004 003



如何通过输入一个用户编号查出该用户的所有下级编号以及包括该用户的编号
能否通过一条SQL语句查出!


如: 输入用户编号 001 ,查出他的所有下及
003,004,还有他自己001
能否用一条SQL语句查出呢!
急等!
...全文
115 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
w_jiao189 2007-09-16
在吗?请您回复一下好吗,急等!
回复
w_jiao189 2007-09-16
怎么调用SQL函数呢
回复
w_jiao189 2007-09-16
怎么查询呢
回复
kk19840210 2007-09-16
create proc return_id
@str varchar(3)--用户号
as
begin
declare @i int
declare @temp table(id varchar(3),fg int)
select @i=1
insert into @temp values(@str,@i)
while (select count(1) from @temp where fg=@i)<>''
begin
insert into @temp
select yh_id ,fg=@i+1 from yh_gx where p_id in (select id from @temp where fg=@i)
select @i=@i+1

end
select id from @temp
end
回复
w_jiao189 2007-09-16
这样在SQL语句里很长啊
回复
w_jiao189 2007-09-16
能不能写成函数,直接调用函数啊
回复
kk19840210 2007-09-16
你把#tb 换成你的表名
回复
kk19840210 2007-09-16
怎么不对了
本来是要写函数的
回复
w_jiao189 2007-09-16
不对吧
回复
kk19840210 2007-09-16
declare @i int
declare @temp table(id varchar(3),fg int)
select @i=1
insert into @temp values('001',@i)
while (select id from @temp where fg=@i)<>''
begin
insert into @temp
select yh_id ,fg=@i+1 from #tb where p_id in (select id from @temp where fg=@i)
select @i=@i+1

end
select id from @temp
回复
fufei1023 2007-09-16
知道为什么没人回你的贴不
因为一模一样的问题有人问过.你搜索下吧!!!!
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2007-09-16 11:52
社区公告
暂无公告