Kdo je tvůj manažer?
V tomto cvičení budeme pracovat s datasetem IT organizace, který je uložen v tabulce employee. Tabulka obsahuje sloupce ID (identifikační číslo zaměstnance), Name (jméno zaměstnance) a Supervisor (identifikační číslo nadřízeného).
IT organizace se skládá z různých rolí a úrovní.

Organizace má jednoho IT ředitele (ID=1, Heinz Griesser, Supervisor=0) s mnoha podřízenými zaměstnanci. Pod IT ředitelem najdeš manažera IT architektury (ID=10, Andreas Sternig, Supervisor=1) se třemi podřízenými. Hodnota Supervisor=1 u Andrease Sterniga odpovídá ID IT ředitele.
Nejdříve chceme odpovědět na otázku: Kdo je nadřízený každého zaměstnance?
Tento problém vyřešíme rekurzivním dotazováním nad datasetem.
Toto cvičení je součástí kurzu
Hierarchical and Recursive Queries in SQL Server
Pokyny k cvičení
- Vytvoř CTE s názvem
employee_hierarchy. - Jako počáteční krok CTE vyber informace o IT řediteli – filtruj podle jeho
SupervisorID. - Proveď join s tabulkou
employee, abys získal/a jméno manažera.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- 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.___;