SQL - Distinct en una query ya lista.

 
Vista:
sin imagen de perfil
Val: 16
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Distinct en una query ya lista.

Publicado por roberto (20 intervenciones) el 18/04/2018 21:09:37
Hola Chicos, tengo este codigo que ocupamos hace un par de meses trabajo en una compañía de seguros de Salud y estamos analizando las llamadas que realizan las personas, , pero nos fijamos que a pesar de tener distinct , de igual manera aparecen datos repetidos, alguno me puede orientar en que cambiar para que en esta query no me aparezcan datos repetidos, En las columnas

Hora, Tiempo_Hablando y CallId

Por favor,

Adjunto Codigo, y en archivo adjunto algunas columnas que se repiten, llevo dias tratando pero no puedo hacer que no se repitan esos campos específicos.


Codigo:

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
DECLARE @NLPBeginTime     smalldatetime
DECLARE @NLPEndTime       smalldatetime
SET NOCOUNT ON
SELECT  @NLPBeginTime = '2018-04-16 00:00:00',
        @NLPEndTime   = '2018-04-16 23:59:59'
SELECT CONVERT(char(12),a.callstartdt,111) as 'Fecha'
,CONVERT(char(12),a.callstartdt,108) as 'Hora'
,(convert(char(2),DATEPART(HH,a.callstartdt))) + ':' + (convert(char(2),(((DATEPART(MINUTE,a.callstartdt)/30)*30)))) as Intervalo
, convert(char(8),(DATEADD(second,(DATEDIFF(ss,a.AnswerDt,a.ConnClearDt)), '00:00:00')),108) as Tiempo_Hablando
, convert(char(8),(DATEADD(second,(DATEDIFF(ss,a.ConnClearDt,a.WrapEndDt)), '00:00:00')),108) as Tiempo_Cierre
, convert(char(8),(DATEADD(second,(DATEDIFF(ss,a.PreviewStartDt,a.PreviewEndDt)), '00:00:00')),108) as Tiempo_Preview
,a.[User_Id] as Agente
,c.[Disposition_Desc] as Catalogación
      ,b.Service_c as Servicio
,CASE WHEN (DetectionDt IS NOT NULL) THEN 'Predictivo' WHEN (PreviewStartDt IS NOT NULL) THEN 'Preview'
Else 'Otro' END as 'Tipo Discado'
,e.dialednum as Número_discado,d.Param1 as RUT
,d.Param2 as Isapre,d.Param3 as Nombres
,d.param4 as Apellido_Paterno,d.param5 as Apellido_Materno
,d.param6 as Deuda,d.param7 as Fono1
,a.[SeqNum],a.[CallId]
,'Aspect' as Tipo
  FROM [detail_epro].[dbo].[AODCallDetail] a, [UNIFIEDIP_CONFIG].[config_epro].[dbo].[Service] b,
  UNIFIEDIP_CONFIG.[config_epro].[dbo].[Disposition] c, [detail_epro].[dbo].[MediaDataDetail] d, UNIFIEDIP_RPT.[detail_epro].[dbo].[CallDetail] e
  WHERE a.Service_Id = b.Service_Id
  AND a.CallStartDt >= @NLPBeginTime AND a.CallStartDt <= @NLPEndTime
  AND c.Disp_Id=a.AgentDispId
  AND a.SeqNum = d.SeqNum AND a.CallId = d.CallId AND a.SeqNum = e.SeqNum
  AND a.User_Id IN (SELECT distinct User_Id FROM UNIFIEDIP_CONFIG.config_epro.[dbo].[Agent] where Workgroup_Id IN (15,16))
union all
SELECT CONVERT(char(12),a.callstartdt,111) as 'Fecha'
,CONVERT(char(12),a.callstartdt,108) as 'Hora'
,(convert(char(2),DATEPART(HH,a.callstartdt))) + ':' + (convert(char(2),(((DATEPART(MINUTE,a.callstartdt)/30)*30)))) as Intervalo
, convert(char(8),(DATEADD(second,(DATEDIFF(ss,a.ConnectDt,a.ConnClearDt)), '00:00:00')),108) as Duración_llamada
,'','',a.[User_Id],c.[Disposition_Desc],b.Service_c ,''
,d.DialedNum,e.Param1 as RUT,e.Param2 as Isapre,e.Param3 as Nombres,e.param4 as Apellido_Paterno
,e.param5 as Apellido_Materno,e.param6 as Deuda,e.param7 as Fono1,a.[SeqNum] ,a.[CallId], 'Aspect'
  FROM [detail_epro].[dbo].[ManualCallDetail] a, [UNIFIEDIP_CONFIG].[config_epro].[dbo].[Service] b,
  UNIFIEDIP_CONFIG.[config_epro].[dbo].[Disposition] c, UNIFIEDIP_RPT.[detail_epro].[dbo].[CallDetail] d, [detail_epro].[dbo].[MediaDataDetail] e
  WHERE a.Service_Id = b.Service_Id and a.FirstPartyDispId not in (34)
  AND c.Disp_Id=a.FirstPartyDispId
  AND a.CallStartDt >= @NLPBeginTime AND a.CallStartDt <= @NLPEndTime
  AND a.CallStartDt = d.CallStartDt AND a.CallStartDt = e.CallStartDt AND d.CallStartDt = e.CallStartDt
  AND a.SeqNum = d.SeqNum AND a.CallId = d.CallId AND a.SeqNum = e.SeqNum AND d.SeqNum = e.SeqNum
  AND a.User_Id IN (SELECT distinct User_Id FROM UNIFIEDIP_CONFIG.config_epro.[dbo].[Agent] where Workgroup_Id IN (15,16))



Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Distinct en una query ya lista.

Publicado por Isaias (1921 intervenciones) el 18/04/2018 22:28:07
Veo tus datos y veo QUE NO se repiten, tienes un DISCADO diferente, ¿en que motor de base de datos trabajas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Distinct en una query ya lista.

Publicado por roberto (20 intervenciones) el 18/04/2018 22:33:48
En Oracle - Toad , lo que sucede que no quiero que no se repita el el : CallId
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar