Obtén la posición en la jerarquía
Un problema importante al trabajar con recursión es llevar el control del nivel de recursión. En la organización de IT, esto significa registrar la posición de cada empleado en la jerarquía.

Para ello, usarás un campo LEVEL que guarda el paso actual de la recursión. Tienes que introducir este campo en el miembro ancla e incrementar su valor en cada paso de la recursión en el miembro recursivo.
Ten en cuenta que el primer nivel de la jerarquía es 0, el segundo nivel es 1 y así sucesivamente.
Este ejercicio forma parte del curso
Consultas jerárquicas y recursivas en SQL Server
Instrucciones del ejercicio
- Inicializa el campo
LEVELa 1 al comienzo de la recursión. - Selecciona la información del director de IT como paso inicial de la CTE filtrando por
Supervisor. - Establece
LEVELen el paso actual de la recursión. - Realiza un
JOINcon la CTE definida usando losIDdel supervisor y del empleado.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
WITH employee_hierarchy AS (
SELECT
ID,
NAME,
Supervisor,
-- Initialize the field LEVEL
___ as LEVEL
FROM employee
-- Start with the supervisor ID of the IT Director
WHERE ___ = ___
UNION ALL
SELECT
emp.ID,
emp.NAME,
emp.Supervisor,
-- Increment LEVEL by 1 each step
___ + 1
FROM employee emp
JOIN employee_hierarchy
-- JOIN on supervisor and ID
ON emp.___ = employee_hierarchy.___)
SELECT
cte.Name, cte.Level,
emp.Name as ManagerID
FROM employee_hierarchy as cte
JOIN employee as emp
ON cte.Supervisor = emp.ID
ORDER BY Level;