LoslegenKostenlos loslegen

Welchen Vorgesetzten habe ich?

In dieser Übung wollen wir den Pfad vom Chef an der Spitze der Hierarchie bis zu den Mitarbeitenden am Ende der Hierarchie ermitteln. Dafür müssen wir die Informationen aus jedem Schritt in einem Feld zusammenführen. Das geht, indem du die IDs mithilfe von CAST() von Zahl in String umwandelst. Ein Beispiel ist CAST(ID AS VARCHAR(MAX)), um die numerische ID in den Typ char zu konvertieren.

Deine Aufgabe ist es nun, den Pfad für die Mitarbeitenden Chris Feierabend mit ID=18 und Jasmin Mentil mit ID=16 bis ganz nach oben in der Organisation zu finden. Die Ausgabe sollte so aussehen: boss_first_level -> boss_second_level .... Es sollen die IDs der Mitarbeitenden ausgewählt werden, nicht ihre Namen.

Diese Übung ist Teil des Kurses

Hierarchische und rekursive Abfragen in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere Path mit der ID des Vorgesetzten (0) und der Startbedingung der Rekursion.
  • Führe den Ankerteil per UNION zusammen und definiere die Felder des rekursiven Teils (ID, Name, Supervisor).
  • Füge in jedem Schritt die ID des Vorgesetzten Supervisor zum Path hinzu.
  • Wähle die IDs der Mitarbeitenden Chris Feierabend und Jasmin Mentil in der CTE aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

WITH employee_Hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the Path with CAST
  		___('___' AS VARCHAR(MAX)) as Path
	FROM employee
	WHERE Supervisor = 0
	-- UNION the anchor query 
  	___ ALL
    -- Select the recursive query fields
	SELECT 
  		emp.___,
  		emp.___,
  		emp.___,
  		-- Add the supervisor in each step. CAST the supervisor.
        Path + '->' + ___(emp.___ AS VARCHAR(MAX))
	FROM employee emp
		INNER JOIN employee_Hierarchy
  		ON emp.Supervisor = employee_Hierarchy.ID
)

SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;
Code bearbeiten und ausführen