Kto jest twoim przełożonym?
W tym ćwiczeniu skorzystamy z danych pewnej organizacji IT, dostępnych w tabeli employee. Tabela zawiera pola: ID (numer identyfikacyjny pracownika), Name (imię i nazwisko pracownika) oraz Supervisor (numer identyfikacyjny przełożonego).
Organizacja IT składa się z różnych ról i poziomów hierarchii.

Organizacja ma jednego dyrektora IT (ID=1, Heinz Griesser, Supervisor=0) z wieloma podległymi pracownikami. Bezpośrednio pod nim znajduje się menedżer architektury IT (ID=10, Andreas Sternig, Supervisor=1) z trzema podwładnymi. Dla Andreasa Sterniga Supervisor=1, co odpowiada ID dyrektora IT.
Na początku chcemy odpowiedzieć na pytanie: Kto jest przełożonym każdego z pracowników?
Rozwiążemy ten problem, rekurencyjnie odpytując zbiór danych.
To ćwiczenie jest częścią kursu
Hierarchiczne i rekurencyjne zapytania w SQL Server
Instrukcje do ćwiczenia
- Utwórz CTE o nazwie
employee_hierarchy. - Wybierz dane dyrektora IT jako krok początkowy CTE, filtrując po jego
IDw poluSupervisor. - Wykonaj złączenie z tabelą
employee, aby pobrać imię i nazwisko przełożonego.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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.___;