¿Quién es tu responsable?
En este ejercicio vamos a usar el conjunto de datos de una organización de TI que está en la tabla employee. La tabla tiene los campos ID (número de identificación del empleado), Name (nombre del empleado) y Supervisor (número de identificación del responsable).
La organización de TI se compone de distintos roles y niveles.

La organización tiene un director de TI (ID=1, Heinz Griesser, Supervisor=0) con muchos empleados a su cargo. Bajo el director de TI está el responsable de arquitectura de TI (ID=10, Andreas Sternig, Supervisor=1) con tres personas a su cargo. Para Andreas Sternig Supervisor=1, que es el ID del director de TI.
Primero queremos responder a la pregunta: ¿Quiénes son los responsables de cada empleado?
Vamos a resolverlo consultando el conjunto de datos de forma recursiva.
Este ejercicio forma parte del curso
Consultas jerárquicas y recursivas en SQL Server
Instrucciones del ejercicio
- Crea una CTE con el nombre
employee_hierarchy. - Selecciona la información del director de TI como paso inicial de la CTE filtrando por su
SupervisorID. - Realiza un join con
employeepara obtener el nombre del responsable.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- 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.___;