27,580
社区成员
发帖
与我相关
我的任务
分享
DECLARE @ID VARCHAR(100)
SELECT @ID=001
;WITH MU AS (
SELECT ID,NAME,NUM,父NUM,角色,1 AS LEVEL
FROM TB
WHERE ID=@ID
UNION ALL
SELECT T1.ID,T1.NAME,T1.NUM,T1.父NUM,T1.角色,MU.LEVEL+1
FROM TB T1
INNER JOIN MU T2 ON T1.NUM=T2.父NUM
)
SELECT
FROM MU T1
WHERE 角色='老师' AND NOT EXISTS(
SELECT 1
FROM MU T2
WHERE T2.角色='老师'
--如果要找最低层的老师,改成AND T2.LEVEL<T1.LEVEL
AND T2.LEVEL>T1.LEVEL
)
with cte as
(
select ID, 姓名, 角色, Num, 父Num from 原表
where Id = '001'
union all
select a.ID, a.姓名, a.角色, a.Num, a.父Num from cte c inner join Department a
on c.父Num = a.Num)
select * from cte where 角色 = '老师'