Hola, quisiera saber quien me pede ayudar a comprender como funciona esta
CTE recursiva y como va obteniendo los datos, por ejemplo:
CREATE TABLE Empleados
(
Nombre nvarchar(50),
ID int Primary Key
Jefe int
)
INSERT INTO Empleados VALUES ('Ricardo',1,NULL)
INSERT INTO Empleados VALUES ('Samuel',2,1)
INSERT INTO Empleados VALUES ('Clemente',3,2)
INSERT INTO Empleados VALUES ('Mario',4,2)
INSERT INTO Empleados VALUES ('Gabriel',5,4)
INSERT INTO Empleados VALUES ('Karen',6,1)
INSERT INTO Empleados VALUES ('Ramon',7,5)
GO
WITH CTERecusiva(Nombre,ID,Jefe) AS
(
SELECT Nombre, ID, Jefe FROM Empleados WHERE ID = 2
UNION ALL
SELECT Nombre, ID, Jefe FROM Empleados P
INNER JOIN CTERecursiva R ON R.ID = P.Jefe
)
SELECT cteR.Nombre as Empleado, e.Empleado as Jefe FROM CTERecursiva cteR
INNER JOIN Empleados e ON cteR.Jefe = e.ID
GO
El cual devuelve el siguiente resultado:
Empleado | Jefe
-
Samuel Ricardo
Clemente Samuel
Mario Samuel
Gabriel Mario
Ramon Gabriel
Y no entiendo como funciona, como va obteniendo los datos, si alguien me
puede explicar, GRACIAS.
Leer las respuestas