首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server -列出经理及以上级别的员工

SQL Server -列出经理及以上级别的员工
EN

Stack Overflow用户
提问于 2019-09-13 00:01:37
回答 1查看 144关注 0票数 0

假设我有一个这样的数据集(我使用employee和manager,因为这是一个很好的示例):

代码语言:javascript
复制
EmployeeID | ManagerID | Role          | ...
1          | NULL      | CEO
2          | 1         | Manager
3          | 1         | Manager
5          | 2         | Team-Leader
6          | 2         | Team-Leader
7          | 3         | Team-Leader
8          | 2         | Employee
9          | 5         | Employee
10         | 6         | Employee
11         | 6         | Employee
12         | 7         | Employee

我想列出每个在他之上的人的EmployeeID。这是我的目标:

代码语言:javascript
复制
EmployeeID | ManagerID
12         | 7
12         | 3
12         | 1
12         | NULL
11         | 6
11         | 2
11         | 1
11         | NULL
....
9          | 5
9          | 2
9          | 1
9          | NULL

因此,如果我在结果中使用EmployeeID上的where,我可以获得员工和他所负责的级别以上的每个人。

我试着用递归cte来解决这个问题,但这似乎根本行不通。

有什么建议/想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 00:18:44

试试这个:

代码语言:javascript
复制
with cte1(EmployeeID, ManagerID) as
(
select EmployeeID, max(ManagerID)
from Employees
group by EmployeeID
union all
select t2.EmployeeID, t1.ManagerID
from Employees t1
join cte1 t2 on t2.ManagerID = t1.EmployeeID
)
select * from cte1
order by EmployeeID desc, ManagerID desc
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57910596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档