SQL-запрос оргструктуры - PullRequest
       2

SQL-запрос оргструктуры

0 голосов
/ 05 ноября 2019

Я пытаюсь создать таблицу для хранения оргструктуры с использованием 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 и т. Д.

1 Ответ

0 голосов
/ 05 ноября 2019

Вы можете использовать apply для отмены поворота, а затем использовать select distinct для удаления дубликатов:

select distinct v.*
from t cross apply
     (values (col3, col3, col2, col1),
             (col2, col2, col1, null),
             (col1, col1, null, null)
     ) v(resource, col3, col2, col1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...