SqlServer递归查询

企业组织结构表(ogt)

个人id 领导id 职务名称
id  pid    cname
1 0 信息部总监
2 0 财务部总监
3 1 信息部经理
4 2 财务部经理
5 2 财务部总监文秘
6 3 信息部小弟1
7 3 信息部小弟2
8 4 财务部小弟1

 1.查询信息部总监所有下属

with my1 as(select *  from ogt where cname = '信息部总监'

union all

select ogt.* from ogt,my1 where ogt.pid = my1.id)

select * from my1

个人id 领导id 职务名称
id  pid    cname
1 0 信息部总监
3 1 信息部经理
6 3 信息部小弟1
7 3 信息部小弟2

2.查询财务部总监下面的基层员工

with my1 as(select *  from ogt where cname = '财务部总监'

union all

select ogt.* from ogt,my1 where ogt.pid = my1.id)

select * from my1 where id not in (select pid from my1)

个人id 领导id 职务名称
id  pid    cname
5 2 财务部总监文秘
8 4 财务部小弟1

猜你喜欢

转载自blog.csdn.net/weixin_38660590/article/details/81143826