¿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
Instrucciones del ejercicio
- Inicializa
Pathcon elIDdel supervisor (0) y la condición inicial de la recursión. - Usa
UNIONpara unir el miembro ancla y define los campos del miembro recursivo (ID,Name,Supervisor). - Añade en cada paso el ID del supervisor
SupervisoraPath. - Selecciona los ID de las personas empleadas
Chris FeierabendyJasmin Mentilen 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 = ___;