首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:助手?

SQL:助手?
EN

Stack Overflow用户
提问于 2018-01-08 01:38:23
回答 1查看 71关注 0票数 0

我有员工列表,每个人都可以选择一个助理。所有员工都有EmpID,包括助理。AssistantID是助手的EmpID。我想通过EmpID查询并得到他们的AssistantID。特别注意:终极助手是AssistantID为空的人。举个例子:苏珊的助手最终是弗雷德,苏珊,约翰,->,弗雷德。是否有人可以帮助查询/子查询来检索此信息?使用标准SQL,例如,没有专有sql。

例如:

代码语言:javascript
复制
EmpID Name AssistantID
=======================
1, Bob, NULL
2, Susan, 3
3, John, 4
4, Mary, 6
5, Bill, NULL
6, Fred, NULL
EN

回答 1

Stack Overflow用户

发布于 2018-01-08 02:30:49

如果我没理解错的话,您想要检索员工最底层的助理。

代码语言:javascript
复制
WITH RCTE AS 
(
    SELECT * , EmpID AS TopEmp
    FROM EMPLOYEES c
    UNION ALL
    SELECT c.* , r.TopEmp
    FROM dbo.EMPLOYEES c
    INNER JOIN RCTE r ON c.EmpID = r.AssistantID
)
select EmployeeName,Assistant from
(
SELECT 
  e.EmpID AS EmployeeId,
  e.Name AS EmployeeName,
  r.Name AS Assistant,
  r.EmpID AS AssistantId
FROM RCTE r
inner join EMPLOYEES e ON r.TopEmp = e.EmpID
where r.AssistantID is null
) Records

Demo

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48139830

复制
相关文章

相似问题

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