Qui est votre gestionnaire?
Dans cet exercice, nous allons utiliser l'ensemble de données d'une organisation TI fourni dans la table employee. La 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).
L'organisation TI est composée de différents rôles et niveaux.

L'organisation compte un directeur TI (ID=1, Heinz Griesser, Supervisor=0) avec de nombreux employés subalternes. Sous le directeur TI, on trouve le gestionnaire de l'architecture TI (ID=10, Andreas Sternig, Supervisor=1) avec trois employés sous sa responsabilité. Pour Andreas Sternig, Supervisor=1, ce qui correspond à l'ID du directeur TI.
D'abord, nous voulons répondre à la question : Qui sont les supérieurs de chaque employé?
Nous allons résoudre ce problème en interrogeant l'ensemble de données de façon récursive.
Cette activité fait partie du cours
Requêtes hiérarchiques et récursives dans SQL Server
Instructions de l’exercice
- Créez une CTE nommée
employee_hierarchy. - Sélectionnez l'information du directeur TI comme étape initiale de la CTE en filtrant sur son ID de
Supervisor. - Faites une jointure avec
employeepour obtenir le nom du gestionnaire.
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.___;