急!在线等一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语句查出呢!
急等!
...全文
139 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
知道为什么没人回你的贴不
因为一模一样的问题有人问过.你搜索下吧!!!!

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧