好贷网好贷款

急!!! 在线等一数据库查询问题(30分) 30w_jiao189]

发布时间:2016-12-5 4:33:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"急!!! 在线等一数据库查询问题(30分) 30w_jiao189]",主要涉及到急!!! 在线等一数据库查询问题(30分) 30w_jiao189]方面的内容,对于急!!! 在线等一数据库查询问题(30分) 30w_jiao189]感兴趣的同学可以参考一下。

有一张表,    yh_gx(id,yh_id,p_id) 用户关系表  yh_id 是用户编号  p_id  是用户领导编号  id  yh_id  p_id  1    001    002  2    003    001  请问如何通过一条SQL语句查询出用户的最高领导,如003的最高领导是002 ,001的最高领导也是002,   这中间的关系只能是两层,就是说比他高出两及的领导    如 副主任----主任-----总经理      总经理比副主任高两级       只查处比他高两及的领导,如果没有比他高两几的领导,那就查出高一及的领导

有没有人回复啊!!!

try ______________ CASE WHEN (select p_id from yh_gx where yh_id = (select p_id from yh_gx where yh_id='003'))=null  THEN select p_id from yh_gx where yh_id='003'  ELSE (select p_id from yh_gx where yh_id = (select p_id from yh_gx where yh_id='003') END 

---这样??? Select Case When Exists(Select 1 From yh_gx Where yh_id=(Select p_id From yh_gx Where yh_id='003'))             Then (Select p_id From yh_gx Where yh_id=(Select p_id From yh_gx Where yh_id='003'))             Else (Select p_id From yh_gx Where yh_id='003') End As 最高领导编号

--建立环境 if object_id('yh_gx')<>''  drop table yh_gx create table yh_gx (id int,yh_id varchar(10),p_id varchar(10)) insert into   yh_gx select 1,'001','002' union all                        select 2,'003','001' union all                        select 2,'004','003' union all                        select 2,'005','003' union all                        select 2,'006','004'   ----建立函数 create  function  func_s (@yh_id varchar(10)) returns  varchar(10) as  begin declare @p_id varchar(10) declare @count int set @count=1 lable1: select @p_id=p_id from yh_gx where [email protected]_id while exists(select 1 from yh_gx where [email protected]_id) and @count<2           ---小于等于2级的领导 begin         select @[email protected]+1,@[email protected]_id         goto lable1 end return(@p_id) end ---执行: select *,dbo.func_s(yh_id) as 领导    from yh_gx  /* 结果: id                  yh_id         pid             领导 ---------------------------------------------------------- 1 001 002 002 2 003 001 002 2 004 003 001 2 005 003 001 2 006 004 003 */

上一篇:select '汉字' as a 出现乱码的问题 20Jasper_wang]
下一篇:用sqlserver2005访问oracle 100lengchenghao]

相关文章

相关评论