ComenzarEmpieza gratis

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.

A section of the entire hierarchy

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

Ver curso

Instrucciones del ejercicio

  • Inicializa el campo LEVEL a 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 LEVEL en el paso actual de la recursión.
  • Realiza un JOIN con la CTE definida usando los ID del 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;
Editar y ejecutar código