
Duda sobre union de filas
Publicado por EITHEL (1 intervención) el 05/01/2018 15:26:53
Hola, tengo un problema.
cuando consulto con esta query me envia dos registros de la misma persona pero con datos diferentes en algunas columnas.
Mi preguntas es: como haria para mostrar el registro por persna en una sola fila, donde se sume en la columna TipoServicio,Imagenes, Interconsulta por nombreUsuario,
para que no se repita .
Por ejemplo_: un solo registro de SANCHEZ MELENDEZ que tenga 5-1-0-0-NombreUsuario-Prioirdad-...-..-..

cuando consulto con esta query me envia dos registros de la misma persona pero con datos diferentes en algunas columnas.
Mi preguntas es: como haria para mostrar el registro por persna en una sola fila, donde se sume en la columna TipoServicio,Imagenes, Interconsulta por nombreUsuario,
para que no se repita .
Por ejemplo_: un solo registro de SANCHEZ MELENDEZ que tenga 5-1-0-0-NombreUsuario-Prioirdad-...-..-..
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
SELECT DISTINCT
T6.NumVisorEmergencia IdTopico,
CASE D1.TipoOrdenAtencion
WHEN '5' THEN '1'
Else '0'
END
AS TipoServicio,
CASE D1.TipoOrdenAtencion
WHEN '6' THEN '1'
WHEN '8' THEN '1'
WHEN '16' THEN '1'
WHEN '17' THEN '1'
WHEN '18' THEN '1'
Else '0'
END
AS Imagenes,
CASE D1.TipoOrdenAtencion
WHEN '11' THEN '1'
Else '0'
END
AS Interconsulta,
CONVERT(VARCHAR(50),LTRIM(RTRIM(T2.NombreCompleto))) + ' ' + '('+ CONVERT(VARCHAR(50),(CASE WHEN MONTH(T2.FECHANACIMIENTO)*100 + DAY(T2.FECHANACIMIENTO) > MONTH(GETDATE())*100 + DAY(GETDATE()) THEN YEAR(GETDATE()) - YEAR(T2.FECHANACIMIENTO) -1 ELSE YEAR(GETDATE()) - YEAR(T2.FECHANACIMIENTO) END)) + ')' AS NombresUsuario,
--LTRIM(RTRIM(T2.NombreCompleto)) as NombresUsuario,
T3.SecuencialPrioridad as Prioridad,
CONVERT(CHAR(19),T1.FechaCreacion, 0) EndTimeStamp,
dbo.fn_cosapi_calcularTiempo(T5.FecIniTopico,GETDATE(),2) Tiempo_Permanencia,
dbo.fn_cosapi_calcularTiempo(T1.FechaCreacion,GETDATE(),2) Tiempo_PermanenciaTotal,
DATEDIFF(mi,T1.FechaCreacion,GETDATE()) Minutos_Color,
T6.ValorNumerico TipoTopico
FROM SS_AD_OrdenAtencion T1 WITH (NOLOCK)
INNER JOIN SpringSalud_Produccion1.dbo.ss_ce_consultaexterna T3 WITH (NOLOCK) ON T3.idconsultaexterna = T1.IdConsultaExternaPrincipal
INNER JOIN SpringSalud_Produccion1.dbo.Personamast T2 WITH (NOLOCK) ON T2.persona = T1.idpaciente
LEFT JOIN SS_AD_OrdenAtencionTopicoHistorial T5 WITH (NOLOCK) ON T5.IdOrdenAtencion = T1.IdOrdenAtencion AND T5.IdTopico = T1.IdTopico
LEFT JOIN GE_Varios T6 WITH (NOLOCK) ON T6.Secuencial = T1.IdTopico AND T6.CodigoTabla='TOPICO'
LEFT JOIN SS_AD_OrdenAtencionDetalle D1 ON t1.IdOrdenAtencion= D1.IdOrdenAtencion
left join CM_CO_TablaMaestroDetalle on t1.TipoOrdenAtencion =CM_CO_TablaMaestroDetalle.IdCodigo and CM_CO_TablaMaestroDetalle.IdTablaMaestro =101
WHERE T3.EstadoDocumento = 1 -- Estado consulta: Preparación
AND T1.especialidad = 30 -- Especialidad emergencia
AND NOT T1.idtopico IS NULL --Con tópico asignado
AND NOT EXISTS(SELECT NDoc,StartTimeStamp,NombresUsuario FROM QueueSmartSB.dbo.sys_Tickets
WHERE Status ='C'--Terminado
AND PriorityIndex is not null --con prioridad
AND TicketTypeID = 61 -- Ingreso en Topico
AND CONVERT(DATE,StartTimeStamp,103) >= CONVERT(DATE,GETDATE(),103)
AND NDoc = T2.documento COLLATE Modern_Spanish_CI_AS)
AND CONVERT(DATE,T1.FechaCreacion,103) >= CONVERT(DATE, GETDATE(),103)
ORDER BY T6.ValorNumerico, T6.NumVisorEmergencia--, Tiempo_Permanencia asc

Valora esta pregunta


0