父-子关系-递归CTE-如何检索结构

问题描述 投票:0回答:1

我有一份报告,其中有两栏告知员工及其经理(下表)。

员工 经理
A B
B C
C F
F R
R
G B
H B

我最终想要的是一个管理链——它将显示报告链。期望的最终结果如下表:

|员工|经理_1 |经理_2 |经理_3 |经理_4 |经理_5| |A |B |C |F |R |I | |B |C |F |R |I |I | |C |F |R |I |I |I | |F |R |I |I |I |I | |R |我 |我 |我 |我 |我 | |G |B |C |F |R |I | |H |B |C |F |R |I |

如何得到这个结果? 我一直在思考 CTE 递归。但说实话并没有得到想要的 结果。

我没有尚未运行的sql。 这是关于 sql db 的。

非常感谢任何帮助! 克里斯.

sql recursion common-table-expression parent
1个回答
0
投票

我不确定递归变体,因为你没有指出你的RDBMS,但你的任务最简单的方法可以是这样的:

select e.Employee
       , e.Manager  as Manager_1
       , e2.Manager as Manager_2
       , e3.Manager as Manager_3
       , e4.Manager as Manager_4
       , e5.Manager as Manager_5
from Employees e
inner join Employees e2 on e2.Employee = e.Manager
inner join Employees e3 on e3.Employee = e2.Manager
inner join Employees e4 on e4.Employee = e3.Manager
inner join Employees e5 on e5.Employee = e4.Manager;

您可以在此示例中使用数据:https://dbfiddle.uk/vY9LDeDn

© www.soinside.com 2019 - 2024. All rights reserved.