组织结构图SQL查询

我正在尝试使用SQL Server创建一个表来保存组织结构图,但到目前为止尚未成功。我尝试进行子选择和自联接,但无法获得所需的输出。

这是今天的表格,显示谁向谁报告:

1    2         3
Bob  Jon     Kevin
Bob  Mark    Paul
Bob  Jon     Ian

我希望得到的结果是在一列中显示所有资源,然后在右侧显示组织结构图,如下所示:

Resource    3        2       1
Kevin      Kevin    Jon     Bob
Paul       Paul     Mark    Bob
Ian        Ian      Jon     Bob
Jon        NULL     Jon     Bob
Mark       NULL     Mark    Bob
Bob        NULL     NULL    Bob

我不确定SQL是否可以实现这一目标,或者我应该使用哪种策略来实现。枢轴,CTE等。

xuquanfu 回答:组织结构图SQL查询

您可以使用apply取消透视,然后使用select distinct删除重复项:

select distinct v.*
from t cross apply
     (values (col3,col3,col2,col1),(col2,col1,null),(col1,null,null)
     ) v(resource,col1);
本文链接:https://www.f2er.com/3159623.html

大家都在问