Position in der Hierarchie ermitteln
Ein wichtiges Thema bei Rekursionen ist das Verfolgen der Rekursionstiefe. In der IT-Organisation bedeutet das, die Position jeder Person in der Hierarchie nachzuhalten.

Dafür verwendest du ein Feld LEVEL, das den aktuellen Rekursionsschritt festhält. Du musst das Feld im Ankerteil einführen und den Wert in jedem Rekursionsschritt im rekursiven Teil erhöhen.
Denk daran: Die erste Hierarchieebene ist 0, die zweite Ebene ist 1 und so weiter.
Diese Übung ist Teil des Kurses
Hierarchische und rekursive Abfragen in SQL Server
Anleitung zur Übung
- Initialisiere das Feld
LEVELzu Beginn der Rekursion mit 1. - Wähle die Informationen der IT-Direktorin/des IT-Direktors als ersten Schritt der CTE, indem du auf
Supervisorfilterst. - Setze
LEVELauf den aktuellen Rekursionsschritt. - Führe einen
JOINmit der definierten CTE über dieIDs von Vorgesetzter und Mitarbeiter durch.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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;