Subconsulta SQL
Publicado por Giancarlos (1 intervención) el 21/06/2020 02:15:58
Buen día,
Explico mi situación:
-Tengo una tabla llamada "UserProfile", donde una de sus columnas llamada Puesto almacena el ID del puesto del usuario. -Este puesto se almacena en una tabla llamada "Puestos" el cual está conformada por las columnas IdPuesto y Puesto.
El problema que tengo es el siguiente: tengo una tabla llamada Tareas, donde existe un ASIGNADOR, CONTROLADOR Y REALIZADOR, lo que quiero lograr es obtener el Puesto de cada uno de estos 03 sujetos para así poder filtrarlo posteriormente.
Anexo la consulta SQL que tengo del módulo de tareas:
Explico mi situación:
-Tengo una tabla llamada "UserProfile", donde una de sus columnas llamada Puesto almacena el ID del puesto del usuario. -Este puesto se almacena en una tabla llamada "Puestos" el cual está conformada por las columnas IdPuesto y Puesto.
El problema que tengo es el siguiente: tengo una tabla llamada Tareas, donde existe un ASIGNADOR, CONTROLADOR Y REALIZADOR, lo que quiero lograr es obtener el Puesto de cada uno de estos 03 sujetos para así poder filtrarlo posteriormente.
Anexo la consulta SQL que tengo del módulo de tareas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
select t.IdTareas,t.Asunto,t.IdContacto,cont.fld_Nomb_Apel_Razon_Social as Contacto,
t.AsignadoPor,
(SELECT UserName
FROM gestionDeTareas.dbo.UserProfile
WHERE (UserId = t.AsignadoPor)) AS 'Asignador',
t.ControladaPor,
(SELECT UserName
FROM gestionDeTareas.dbo.UserProfile AS UserProfile_2
WHERE (UserId = t.ControladaPor)) AS 'Controlador',
t.AsignadaA,
(SELECT UserName
FROM gestionDeTareas.dbo.UserProfile AS UserProfile_3
WHERE (UserId = t.AsignadaA)) AS 'Realizador',
t.FechaAsignacion,t.FechaDeVencimiento,t.FechaCambioDeEstado,t.Observaciones,t.Estado as EstadoTarea,et.Estado as EstadoDetalle,t.IdPuesto,Puestos.Puesto,Confidencial
from gestionDeTareas.dbo.Tareas t
left outer join gestionDeTareas.dbo.EstadoDeTareas et
on t.Estado = et.IdEstadosDeTareas
left outer join bd_gestion_de_tareas_config.dbo.vi_list_contactos cont
on t.IdContacto = cont.IdContacto
left outer join gestionDeTareas.dbo.UserProfile AS UserProfileAsignador
on t.AsignadoPor = UserProfileAsignador.UserId
left outer join gestionDeTareas.dbo.UserProfile AS UserProfileAsignadoPor
on t.AsignadoPor = UserProfileAsignadoPor.UserId
left outer join gestionDeTareas.dbo.UserProfile AS UserProfileAsignadaA
on t.AsignadaA = UserProfileAsignadaA.UserId
left outer join gestionDeTareas.dbo.Puestos AS Puestos
on t.IdPuesto = Puestos.IdPuesto
WHERE (t.AsignadoPor=@asignador or t.ControladaPor=@controlador)
Order by IdTareas ASC;
Valora esta pregunta


0