locked
AGRUPAR DURACION LLAMADA EN DOS BLOQUES RRS feed

  • 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, RESULTADO

    Obtengo 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    14

    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.

    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

    martes, 21 de noviembre de 2017 12:36
    Moderador

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 t

    Pero 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 SEGUNDOS

    martes, 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

    martes, 21 de noviembre de 2017 12:36
    Moderador
  • 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!

    martes, 21 de noviembre de 2017 13:42