Wer ist dein Manager?
In dieser Übung verwenden wir den Datensatz einer IT-Organisation, der in der Tabelle employee bereitgestellt wird. Die Tabelle enthält die Felder ID (Mitarbeiter-ID), Name (Name des Mitarbeiters) und Supervisor (ID des Vorgesetzten).
Die IT-Organisation besteht aus verschiedenen Rollen und Ebenen.

Die Organisation hat einen IT-Direktor (ID=1, Heinz Griesser, Supervisor=0) mit vielen unterstellten Mitarbeitenden. Unter dem IT-Direktor findest du den IT-Architektur-Manager (ID=10, Andreas Sternig, Supervisor=1) mit drei unterstellten Mitarbeitenden. Für Andreas Sternig gilt Supervisor=1, was der ID des IT-Direktors entspricht.
Zuerst möchten wir die Frage beantworten: Wer sind die Vorgesetzten der einzelnen Mitarbeitenden?
Wir lösen dieses Problem, indem wir den Datensatz rekursiv abfragen.
Diese Übung ist Teil des Kurses
Hierarchische und rekursive Abfragen in SQL Server
Anleitung zur Übung
- Erstelle eine CTE mit dem Namen
employee_hierarchy. - Wähle die Informationen des IT-Direktors als initialen Schritt der CTE aus, indem du nach seiner
Supervisor-ID filterst. - Führe einen Join mit
employeedurch, um den Namen des Managers zu erhalten.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
-- 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.___;