none
Ordenar Query Descendentemente en Sql Server 2008

    Pregunta

  • Hola buen dia, lo que pasa que tengo un query pero no me lo ordena descendentemente, aqui les dejo mi query:

    SELECT TOP 10  Nombre_Usuario, SUM(EscaneoDoble_NoCumpleReposo) 
    FROM         dbo.tb_excepciones
    WHERE   Convert(Char(10), Fecha   , 101) between '07/07/2013'  AND '07/09/2013'
    GROUP BY EscaneoDoble_NoCumpleReposo
    , Nombre_Usuario
    order by EscaneoDoble_NoCumpleReposo DESC

    y el resultado que me arroja es el siguiente:

    miércoles, 10 de julio de 2013 13:03

Respuestas

  • Hola:

    Debes especificar un alias para el resultado del SUM.

    SELECT TOP 10  Nombre_Usuario, SUM(EscaneoDoble_NoCumpleReposo)  as resultadoSuma
    FROM         dbo.tb_excepciones
    WHERE   Convert(Char(10), Fecha   , 101) between '07/07/2013'  AND '07/09/2013'
    GROUP BY EscaneoDoble_NoCumpleReposo
    , Nombre_Usuario 
    order by resultadoSuma DESC

    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    • Marcado como respuesta Davidsito13 miércoles, 10 de julio de 2013 13:26
    miércoles, 10 de julio de 2013 13:10

Todas las respuestas

  • Hola:

    Debes especificar un alias para el resultado del SUM.

    SELECT TOP 10  Nombre_Usuario, SUM(EscaneoDoble_NoCumpleReposo)  as resultadoSuma
    FROM         dbo.tb_excepciones
    WHERE   Convert(Char(10), Fecha   , 101) between '07/07/2013'  AND '07/09/2013'
    GROUP BY EscaneoDoble_NoCumpleReposo
    , Nombre_Usuario 
    order by resultadoSuma DESC

    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    • Marcado como respuesta Davidsito13 miércoles, 10 de julio de 2013 13:26
    miércoles, 10 de julio de 2013 13:10
  • No se si te das cuenta que estas ordenando por la columna [EscaneoDoble_NoCumpleReposo] y no por la suma de ese valor que es lo que muestras en tu resultado.

    Tambien me pregunto por que agrupas por esta columna tambien si esta toma  parte en la agregacion.

    No se si lo que intentas es algo asi como:

    SELECT TOP 10 
        Nombre_Usuario,
        SUM(EscaneoDoble_NoCumpleReposo)  as sum_EscaneoDoble_NoCumpleReposo
    FROM
        dbo.tb_excepciones
    WHERE
        Fecha >= '20130707'  AND Fecha < '20130710'
    GROUP BY 
        Nombre_Usuario 
    ORDER BY
        sum_EscaneoDoble_NoCumpleReposo DESC, Nombre_Usuario;


    AMB

    Some guidelines for posting questions...




    • Editado HunchbackMVP miércoles, 10 de julio de 2013 13:18 adiconar comentario
    miércoles, 10 de julio de 2013 13:13
  • Cierto lo que dices Sergio me faltaba especificar un alias, y Hunchback correcto tambien lo que dices  estaba ordenando la columna y no la suma, muchas gracias ha quedado resuelto.
    • Editado Davidsito13 miércoles, 10 de julio de 2013 13:29 equivocacion
    miércoles, 10 de julio de 2013 13:28
  • Es correcto lo que dice HunchBack, no había observado con detenimiento tu query, estás agrupando también por la columna a la cual estás aplicando el SUM, lo cual simplemente no realizará lo que pretendes, lo correcto es agrupar como el comenta.

    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    miércoles, 10 de julio de 2013 13:32