Este query lo construimos dinámicamente en clase para intentar construir jerarquias que posteriormente un cubo fuese capaz de poner en niveles.
Yo creo que el código casi se explica solo, así que ahí va el query y luego su resultado
create table Empleados ( idEmpleado int identity (1,1) primary key,
NombreEmpleado varchar(100) ,
idJefe int,
constraint fk_jefeempleado foreign key (idjefe) references Empleados (idEmpleado))
go
insert into Empleados (NombreEmpleado,idjefe) values('Javier El jefe',null)
insert into Empleados (NombreEmpleado,idjefe) values('Miguel Empleado',1)
insert into Empleados (NombreEmpleado,idjefe) values('Pepe El jefe',null)
insert into Empleados (NombreEmpleado,idjefe) values('antonio Empleado',3)
insert into Empleados (NombreEmpleado,idjefe) values('luis Empleado',2)
go
with cte (idEmpleado,NombreEmpleado,Nombrejefe,idjefe, jerarquia) as
(select IdEmpleado,NombreEmpleado,cast('JEFE' as varchar(100)) NombreJefe,idjefe ,
cast(cast (row_number() over( order by idEmpleado) as varchar(100))+'.'as varchar(100)) jerarquia
from empleados 
where idjefe is null
union all
select e.IdEmpleado,e.NombreEmpleado, cte.NombreEmpleado,e.idJefe as NombreJefe ,
cast (jerarquia+cast (row_number() over( order by e.idEmpleado) as varchar(100))+'.' as varchar(100))
from empleados E inner join
cte on e.idJefe=cte.idEmpleado
where not e.idjefe is
null
)
select * from cte
order by jerarquia

 

El resultado de la ejecución es

 

id Nombre JEFE idjefe jerarquia
1 Javier El jefe JEFE NULL 1.
2 Miguel Empleado Javier El jefe 1 1.1.
5 luis Empleado Miguel Empleado 2 1.1.1.
3 Pepe El jefe JEFE NULL 2.
4 antonio Empleado Pepe El jefe 3 2.1.

 

 

 

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

Azure Stream Analytics serie. Parte 1: Uso e implementación de funciones en JavaScript en un job de ASA

En esta serie de posts vamos a comentar diferentes aspectos de Azure Stream Analytics (ASA de ahora en adelante), que pueden resultarnos útiles en nuestros desarrollos del día a día. Sino conoces Azure Stream Analytics puedes ver una introducción en este enlace. Parte 1: Uso e implementación de funciones en JavaScript en un job de ASA
SQL Server en Kubernetes (Parte 2)
Leer más

Matar al mensajero – SQL Server en Kubernetes (Parte 2)

En la primera parte de este artículo explicamos en qué consiste un SQL Server en contenedores y mostramos una forma sencilla de crear un entorno Kubernetes manejado. En esta segunda parte vamos a enfocarnos en los escenarios más críticos donde el uso de contenedores puede añadirnos latencias y esperas extras que acaben impactando en el rendimiento percibido por nuestros usuarios tras una migración de SQL Server a contenedores.
Leer más

Evalúa el impacto que tiene tu proyecto de Power BI

Ya sabemos que cuando una empresa tiene que decidir si se lanza o no a invertir en un proyecto de Business intelligence tiene que encontrar las respuestas a todas las preguntas que le surgen sobre su eficacia: "¿realmente le vamos a sacar partido?", "¿nos dará la información que necesitamos?", "¿nos va a reportar beneficios?"... En muchos casos a las empresas les resulta complicado tener la respuesta a todas estas preguntas, sobre todo cuando nos encontramos en las primeras fases del proyecto. Pero, ¿y cuando está ya está funcionando? Surgen nuevas preguntas: "Sí, todos estos gráficos están muy bien, pero: ¿realmente me dicen lo que quiero saber?, ¿estoy acertando con estos informes?, ¿se utilizan dentro de la empresa o es dinero tirado?..."