Хто ваш(і) керівник(и)?
У цій вправі ми використаємо набір даних ІТ-організації, який наведено в таблиці employee. У таблиці є поля ID (ідентифікатор працівника), Name (ім'я працівника) та Supervisor (ідентифікатор керівника).
ІТ-організація складається з різних ролей і рівнів.

В організації є один ІТ-директор (ID=1, Heinz Griesser, Supervisor=0) із багатьма підлеглими. Під ІТ-директором є менеджер з ІТ-архітектури (ID=10, Andreas Sternig, Supervisor=1) із трьома підлеглими. Для Andreas Sternig Supervisor=1, тобто це ID ІТ-директора.
Спочатку хочемо відповісти на запитання: Хто є керівником для кожного працівника?
Ми розв'яжемо цю задачу, рекурсивно виконуючи запити до набору даних.
Ця вправа є частиною курсу
Ієрархічні та рекурсивні запити в SQL Server
Інструкції до вправи
- Створіть CTE з назвою
employee_hierarchy. - Виберіть дані про ІТ-директора як початковий крок CTE, відфільтрувавши за його
SupervisorID. - Виконайте з'єднання з
employee, щоб отримати ім'я керівника.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
-- Create the CTE employee_hierarchy
WITH ___ AS (
SELECT
ID,
NAME,
Supervisor
FROM employee
-- Start with the IT Director
WHERE ___ = ___
UNION ALL
SELECT
emp.ID,
emp.NAME,
emp.Supervisor
FROM employee emp
JOIN employee_hierarchy
ON emp.Supervisor = employee_hierarchy.ID)
SELECT
cte.Name as EmployeeName,
emp.Name as ManagerName
FROM employee_hierarchy as cte
JOIN employee as emp
-- Perform the JOIN on Supervisor and ID
ON cte.___ = emp.___;