ComenzarEmpieza gratis

¿Quién es mi supervisor?

En este ejercicio queremos obtener la ruta desde la persona al mando en la parte superior de la jerarquía hasta los empleados en la base de la jerarquía. Para ello, tenemos que ir combinando la información obtenida en cada paso en un único campo. Puedes hacerlo concatenando los ID usando CAST() para pasar de número a cadena. Por ejemplo, CAST(ID AS VARCHAR(MAX)) convierte el ID de tipo numérico a tipo carácter.

Tu tarea es encontrar la ruta para las personas empleadas Chris Feierabend con ID=18 y Jasmin MentilconID=16hasta la cúspide de la organización. La salida debería verse así:bossfirstlevel -> bosssecond_level …`. Debes seleccionar los ID de las personas empleadas, no sus nombres.

Este ejercicio forma parte del curso

Consultas jerárquicas y recursivas en SQL Server

Ver curso

Instrucciones del ejercicio

  • Inicializa Path con el ID del supervisor (0) y la condición inicial de la recursión.
  • Usa UNION para unir el miembro ancla y define los campos del miembro recursivo (ID, Name, Supervisor).
  • Añade en cada paso el ID del supervisor Supervisor a Path.
  • Selecciona los ID de las personas empleadas Chris Feierabend y Jasmin Mentil en la CTE.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

WITH employee_Hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the Path with CAST
  		___('___' AS VARCHAR(MAX)) as Path
	FROM employee
	WHERE Supervisor = 0
	-- UNION the anchor query 
  	___ ALL
    -- Select the recursive query fields
	SELECT 
  		emp.___,
  		emp.___,
  		emp.___,
  		-- Add the supervisor in each step. CAST the supervisor.
        Path + '->' + ___(emp.___ AS VARCHAR(MAX))
	FROM employee emp
		INNER JOIN employee_Hierarchy
  		ON emp.Supervisor = employee_Hierarchy.ID
)

SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;
Editar y ejecutar código