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
<Kurs>Hierarchische und rekursive Abfragen in SQL Server</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
-- 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.___;