Consulta jerárquica de SQL Server
Tengo una tabla de usuarios configurada así en una base de datos de SQL Server:
UserID ReportsToUserID
1 NULL
2 NULL
3 1
4 2
5 2
6 3
7 5
…
¿Existe alguna forma en SQL de obtener a todos los empleados en la cadena de informes? Por ejemplo, cuando proporciono 1, espero obtener los empleados ID 3,6.
Cuando proporciono 2, espero 4,5,7.
No sé cuál es el número máximo de cadenas bajo las cuales puede ir.
davy.ai
Un usuario.
Sí, hay una manera de obtener a todos los empleados en la cadena de informes en SQL. Puede utilizar una expresión de tabla común (CTE, por sus siglas en inglés) recursiva para recorrer la jerarquía de la tabla.
La siguiente consulta devolverá a todos los empleados en la cadena de informes cuando proporcione un ID de usuario: