none
sql ordenar por mes calendario, año RRS feed

  • Pregunta

  • Hola Amigos.

    El código abajo indicado muestra la fecha (mes, año) en orden alfabético de los meses así:

    dic, 2016

    ene, 2017

    feb, 2017

    mar, 2017

    Oct, 2016,

    nov, 2016, 

    Pero, necesito que los muestre ordenados así:

    Oct, 2016,

    Nov, 2016,

    Dic, 2016

    Ene, 2017

    Feb, 2017

    Mar, 2017

    .

    .

    .Dic, 2017


    Agradezco de antemano su ayuda.

    SELECT Format([ffecha],"mmm"", ""yyyy") AS [Mes, Año], Sum(tblAA.cantidad) AS Total
    FROM tblAA
    GROUP BY Format([ffecha],"mmm"", ""yyyy")
    ORDER BY Format([ffecha],"mmm"", ""yyyy");

    sábado, 25 de marzo de 2017 15:50

Respuestas

  • sabael,

    Los argumentos que estableces para la función FORMAT() no son los adecuados para t-sql (que es la sección donde escribiste el requerimiento) y sospecho que tampoco para consultas sql en Microsoft Access. Intenta hacer los siguientes cambios:

    SELECT 
        FORMAT(ta.ffecha, "MMM yyyy") AS [Mes Año],
        SUM(ta.cantidad) AS Total
    FROM
        tblAA ta
    GROUP BY
        FORMAT(ta.ffecha, "MMM yyyy")
    ORDER BY
        MAX(ta.ffecha)
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    sábado, 25 de marzo de 2017 21:04

Todas las respuestas

  • Si lo quieres ordenado por orden cronológico, entonces ¿por qué no pones sencillamente ORDER BY [ffecha] en lugar de ordenar por el resultado de formatear la fecha?
    sábado, 25 de marzo de 2017 16:05
  • Alberto. Muchas gracias.

    Ya lo había probado pero no agrupa los registros por año, mes.

    Saludos

    sábado, 25 de marzo de 2017 16:56
  • William, reenvío mi respuesta pues, me muestra que el mensaje no se ha podido enviar la foro.

    William, Muchas gracias por tu atenta y pronta respuesta.

    Me disculpo por la omisión que señalas. Estoy escribiendo sql para MS ACCESS 2013 para luego pasarlo a SQL Server .
    La solución que me sugieres la he escrito de manera similar asi: "aaaa"", ""mm" y me funciona, solo que busco que me muestre como dije mes, año (oct, 2016....).
    Por otra parte, si mi pregunta no es para este Foro, me disculpo con todos ustedes.
    Les saluda. 
    sábado, 25 de marzo de 2017 17:06
  • SELECT convert(Varchar(10),cast(ffechaas Date),112) AS AñoMes, year(ffecha) as año, month(ffecha) as mes, Sum(Importe) AS Total
    FROM tblAA
    Group by ffecha
    order by AñoMes

    si te sirve marca como respuesta

    saludos


    • Editado gasgdl2 sábado, 25 de marzo de 2017 20:49
    sábado, 25 de marzo de 2017 19:43
  • sabael,

    Los argumentos que estableces para la función FORMAT() no son los adecuados para t-sql (que es la sección donde escribiste el requerimiento) y sospecho que tampoco para consultas sql en Microsoft Access. Intenta hacer los siguientes cambios:

    SELECT 
        FORMAT(ta.ffecha, "MMM yyyy") AS [Mes Año],
        SUM(ta.cantidad) AS Total
    FROM
        tblAA ta
    GROUP BY
        FORMAT(ta.ffecha, "MMM yyyy")
    ORDER BY
        MAX(ta.ffecha)
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    sábado, 25 de marzo de 2017 21:04