LoslegenKostenlos starten

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

<Kurs>Hierarchische und rekursive Abfragen in SQL Server</Kurs>
Kurs ansehen

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