LoslegenKostenlos loslegen

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.

A section of the entire hierarchy

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

Kurs anzeigen

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 employee durch, 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.___;
Code bearbeiten und ausführen