Wie is jouw manager?
In deze oefening gebruiken we de gegevensset van een IT-organisatie die beschikbaar is in de tabel employee. De tabel bevat de velden ID (ID-nummer van de medewerker), Name (de naam van de medewerker) en Supervisor (ID-nummer van de leidinggevende).
De IT-organisatie bestaat uit verschillende rollen en niveaus.

De organisatie heeft één IT-directeur (ID=1, Heinz Griesser, Supervisor=0) met veel ondergeschikten. Onder de IT-directeur vind je de IT-architectuurmanager (ID=10, Andreas Sternig, Supervisor=1) met drie ondergeschikte medewerkers. Voor Andreas Sternig is Supervisor=1, wat het ID is van de IT-directeur.
Eerst willen we de vraag beantwoorden: Wie zijn de leidinggevenden van elke medewerker?
We gaan dit probleem oplossen door de gegevensset recursief te bevragen.
Deze oefening maakt deel uit van de cursus
Hiërarchische en recursieve queries in SQL Server
Oefeninstructies
- Maak een CTE met de naam
employee_hierarchy. - Selecteer de informatie van de IT-directeur als eerste stap van de CTE door te filteren op zijn
Supervisor-ID. - Voer een join uit met
employeeom de naam van de manager op te halen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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.___;