CommencerCommencez gratuitement

Qui est votre manager ?

Dans cet exercice, nous allons utiliser l’ensemble de données d’une organisation IT, fourni dans la table employee. Cette table contient les champs ID (numéro d’identification de l’employé), Name (nom de l’employé) et Supervisor (numéro d’identification du supérieur hiérarchique).

L’organisation IT comporte différents rôles et niveaux.

A section of the entire hierarchy

L’organisation compte un directeur IT (ID=1, Heinz Griesser, Supervisor=0) avec de nombreux employés subordonnés. Sous le directeur IT, on trouve le responsable de l’architecture IT (ID=10, Andreas Sternig, Supervisor=1) avec trois employés subordonnés. Pour Andreas Sternig, Supervisor=1, ce qui correspond à l’ID du directeur IT.

Nous voulons d’abord répondre à la question : Qui sont les supérieurs hiérarchiques de chaque employé ?

Nous allons résoudre ce problème en interrogeant récursivement l’ensemble de données.

Cet exercice fait partie du cours

<cours>Requêtes hiérarchiques et récursives dans SQL Server</cours>
Voir le cours

Instructions de l’exercice

  • Créez une CTE nommée employee_hierarchy.
  • Sélectionnez les informations du directeur IT comme étape initiale de la CTE en filtrant sur son Supervisor ID.
  • Effectuez une jointure avec employee pour obtenir le nom du manager.

Exercice interactif pratique

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

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