Principales respuestas
AGRUPAR DURACION LLAMADA EN DOS BLOQUES

Pregunta
-
Buenos días a todos;
Tengo la siguiente query.
select COUNT (ID) AS 'NUMERO LLAMADAS', RESULTADO,
((DATEPART(hh,DURACION_LLAMADA)*3600)+(DATEPART(mi,DURACION_LLAMADA)*60)+(DATEPART(ss,DURACION_LLAMADA))) AS 'DURACION LLAMADA'
FROM [ICCS].[dbo].[DATOS_BLOQUE_II_NEW]
WHERE RESULTADO in ('ARGUMENTADO','ARGUMENTADO NO VENTA','ARGUMENTADO VENTA') --resultados que queremos sacar--
AND [FECHA_CONTACTO] > '28-09-2017' AND [FECHA_CONTACTO] < '01-11-2017' --fechas que queremos filtrar--
AND ID_CAMPANIA = 'LINEAS ADICIONALES EMPRESA' --la campaña de la que queremos sacar datos--
GROUP BY DURACION_LLAMADA, RESULTADOObtengo unos resultados de este estilo
NUMERO LLAMADAS RESULTADO DURACION LLAMADA
2503 ARGUMENTADO 0
45 ARGUMENTADO NO VENTA 1
60 ARGUMENTADO 2
34 ARGUMENTADO NO VENTA 3
29 ARGUMENTADO VENTA 800
36 ARGUMENTADO NO VENTA 156
48 ARGUMENTADO NO VENTA 6
69 ARGUMENTADO NO VENTA 7
74 ARGUMENTADO NO VENTA 8
98 ARGUMENTADO VENTA 862
114 ARGUMENTADO NO VENTA 147
102 ARGUMENTADO NO VENTA 11
91 ARGUMENTADO NO VENTA 12
79 ARGUMENTADO NO VENTA 126
87 ARGUMENTADO VENTA 14El tema es como podria agrupar los resultados de Duracion Llamada, para que aparecerieran en dos bloques en funcion de un criterio que seria mayor de 120 segundos.
Muchas gracias :)
martes, 21 de noviembre de 2017 9:18
Respuestas
-
Hola Angel, a ver es imposible que te ayudemos sin unos scripts o algo, ¿Qué tipo de valoresa lmacena duraciónllamada? nos pones unos datos de ejemplo (2 o 3 registros y una tabla temporal con esa structgura?
Comparte lo que sepas, aprende lo que no sepas (FGG)
portalSQL
El rincón del DBA- Marcado como respuesta Pablo RubioModerator lunes, 27 de noviembre de 2017 15:45
martes, 21 de noviembre de 2017 12:36Moderador
Todas las respuestas
-
de momento he llegado hasta aqui
with t
as (
select COUNT (ID) AS 'NUMERO LLAMADAS', RESULTADO,
((DATEPART(hh,DURACION_LLAMADA)*3600)+(DATEPART(mi,DURACION_LLAMADA)*60)+(DATEPART(ss,DURACION_LLAMADA))) AS 'DURACION LLAMADA'
FROM [ICCS].[dbo].[DATOS_BLOQUE_II_NEW]
WHERE RESULTADO in ('ARGUMENTADO','ARGUMENTADO NO VENTA','ARGUMENTADO VENTA') --resultados que queremos sacar--
AND [FECHA_CONTACTO] > '28-09-2017' AND [FECHA_CONTACTO] < '01-11-2017' --fechas que queremos filtrar--
AND ID_CAMPANIA = 'LINEAS ADICIONALES EMPRESA' --la campaña de la que queremos sacar datos--
GROUP BY DURACION_LLAMADA , RESULTADO
)
select [NUMERO LLAMADAS], RESULTADO, [DURACION LLAMADA],
CASE WHEN ((DATEPART(hh,[DURACION LLAMADA])*3600)+(DATEPART(mi,[DURACION LLAMADA])*60)+(DATEPART(ss,[DURACION LLAMADA]))) < '120' THEN 'MENOR 120 SEGUNDOS'
WHEN ((DATEPART(hh,[DURACION LLAMADA])*3600)+(DATEPART(mi,[DURACION LLAMADA])*60)+(DATEPART(ss,[DURACION LLAMADA]))) >= '120' THEN 'MAYOR 120 SEGUNDOS' END
FROM tPero me esta dando estos resultados... me dice que todos son menores de 120 segundos.....
NUMERO LLAMADAS RESULTADO DURACION LLAMADA (Sin nombre de columna)
2503 ARGUMENTADO NO VENTA 0 MENOR 120 SEGUNDOS
45 ARGUMENTADO NO VENTA 1 MENOR 120 SEGUNDOS
60 ARGUMENTADO NO VENTA 2 MENOR 120 SEGUNDOS
34 ARGUMENTADO NO VENTA 3 MENOR 120 SEGUNDOS
29 ARGUMENTADO NO VENTA 4 MENOR 120 SEGUNDOS
36 ARGUMENTADO NO VENTA 5 MENOR 120 SEGUNDOS
48 ARGUMENTADO NO VENTA 6 MENOR 120 SEGUNDOS
69 ARGUMENTADO NO VENTA 7 MENOR 120 SEGUNDOS
74 ARGUMENTADO NO VENTA 8 MENOR 120 SEGUNDOS
98 ARGUMENTADO NO VENTA 9 MENOR 120 SEGUNDOSmartes, 21 de noviembre de 2017 11:13 -
Hola Angel, a ver es imposible que te ayudemos sin unos scripts o algo, ¿Qué tipo de valoresa lmacena duraciónllamada? nos pones unos datos de ejemplo (2 o 3 registros y una tabla temporal con esa structgura?
Comparte lo que sepas, aprende lo que no sepas (FGG)
portalSQL
El rincón del DBA- Marcado como respuesta Pablo RubioModerator lunes, 27 de noviembre de 2017 15:45
martes, 21 de noviembre de 2017 12:36Moderador -
El tema es como podria agrupar los resultados de Duracion Llamada, para que aparecerieran en dos bloques en funcion de un criterio que seria mayor de 120 segundos.
Solo tendrias que hacer esto IIF ( boolean_expression, true_value, false_value )
SELECT IIF(duracionllamada>120,"A","B"),X.CAMPOS
FROM TABLE ...WHERE ...CONDICIONES GROUP BY 1
Si necesitas ayuda sube tu avance de otro modo no puedo ayudarte , Suerte!
- Propuesto como respuesta Pablo RubioModerator martes, 21 de noviembre de 2017 16:01
martes, 21 de noviembre de 2017 13:42