CommencezCommencez gratuitement

Quel superviseur ai-je?

Dans cet exercice, nous voulons obtenir le parcours allant du patron au sommet de la hiérarchie jusqu'aux employés au bas de la hiérarchie. Pour ce faire, nous devons regrouper l'information obtenue à chaque étape dans un seul champ. Vous pouvez y arriver en combinant les ID en utilisant CAST() pour convertir le nombre en chaîne. Par exemple, CAST(ID AS VARCHAR(MAX)) convertit ID de type numérique en type caractère.

Votre tâche est maintenant de trouver le parcours des employés Chris Feierabend avec ID=18 et Jasmin Mentil avec ID=16 jusqu'au sommet de l'organisation. Le résultat devrait ressembler à ceci : boss_first_level -> boss_second_level .... Vous devez sélectionner les ID des employés, et non leurs noms.

Cette activité fait partie du cours

Requêtes hiérarchiques et récursives dans SQL Server

Voir le cours

Instructions de l’exercice

  • Initialisez Path à l'ID du superviseur (0) et la condition de départ de la récursion.
  • Faites le UNION du membre d'ancrage et définissez les champs du membre récursif (ID, Name, Supervisor).
  • Ajoutez l'ID du superviseur Supervisor à Path à chaque étape.
  • Sélectionnez les ID des employés Chris Feierabend et Jasmin Mentil dans la CTE.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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 = ___;
Modifier et exécuter le code