Bepaal de positie in de hiërarchie
Een belangrijk probleem bij recursie is het bijhouden van het recursieniveau. In de IT-organisatie betekent dit dat je de positie van elke medewerker in de hiërarchie bijhoudt.

Hiervoor gebruik je een veld LEVEL dat de huidige recursiestap bijhoudt. Je moet dit veld introduceren in het ankergedeelte en bij elke recursiestap verhogen in het recursiegedeelte.
Houd er rekening mee: het eerste hiërarchieniveau is 0, het tweede niveau is 1, enzovoort.
Deze oefening maakt deel uit van de cursus
Hiërarchische en recursieve queries in SQL Server
Oefeninstructies
- Initialiseer het veld
LEVELop 1 bij de start van de recursie. - Selecteer de informatie van de IT-directeur als de eerste stap van de CTE door te filteren op
Supervisor. - Stel
LEVELin op de huidige recursiestap. - Voer een
JOINuit met de gedefinieerde CTE op deID’s van de supervisor en de medewerker.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
WITH employee_hierarchy AS (
SELECT
ID,
NAME,
Supervisor,
-- Initialize the field LEVEL
___ as LEVEL
FROM employee
-- Start with the supervisor ID of the IT Director
WHERE ___ = ___
UNION ALL
SELECT
emp.ID,
emp.NAME,
emp.Supervisor,
-- Increment LEVEL by 1 each step
___ + 1
FROM employee emp
JOIN employee_hierarchy
-- JOIN on supervisor and ID
ON emp.___ = employee_hierarchy.___)
SELECT
cte.Name, cte.Level,
emp.Name as ManagerID
FROM employee_hierarchy as cte
JOIN employee as emp
ON cte.Supervisor = emp.ID
ORDER BY Level;