Con la siguiente estructura de tablas:
Tabla Usuarios
Id de usuario Nombre de usuario Id de departamento
1 Usu1 1
2 Usu2 4
3 Usu3 5
4 Usu4 6
Tabla Departamentos
Id de departamento Nombre de departamento Id departamento padre
1 Dirección general 1
0
2 Dirección general 2
0
3 Subdir. 1-1
1
4 Subdir. 2-1
2
5 Dept. 1-1-1
3
6 Dept. 2-1-1
4
Tengo que obtener:
1) Una lista con la ubicación de cada uno de los usuarios dentro de los
departamentos
El resultado esperado sería:
Nivel 1 Nivel 2 Nivel 3
Usuario
Dirección general 1
usu1
Dirección general 1 Subdir. 1-1 Dept. 1-1-1 usu3
Dirección general 2 Subdir. 2-1
usu2
Dirección general 2 Subdir. 2-1 Dept. 2-1-1 Usu4
2) Una lista con la ubicación de cada uno de los usuarios dentro de los
departamentos + aquellos departamentos que no tengan usuarios asignados
El resultado esperado sería:
Nivel 1 Nivel 2 Nivel 3
Usuario
Dirección general 1
usu1
Dirección general 1 Subdir. 1-1
Sin usuarios asignados
Dirección general 1 Subdir. 1-1 Dept. 1-1-1 usu3
Dirección general 2
Sin usuarios asignados
Dirección general 2 Subdir. 2-1
usu2
Dirección general 2 Subdir. 2-1 Dept. 2-1-1 Usu4
Hay que tener en cuenta que el número de niveles de anidamiento en el árbol
de departamentos no está determinado de antemano.
Me gustaría hacerlo con T-SQL
Gracias.
Leer las respuestas