none
Order ascendentemente por mes usando DATENAME RRS feed

  • Pregunta

  • Tengo la <g class="gr_ gr_22 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" data-gr-id="22" id="22">consulta</g>:

    select DATENAME(MONTH,fec_nac) as Mes, COUNT(*) as Cantidad_Alumnos from alumno
    group by DATENAME(MONTH,fec_nac)
    order by DATENAME(MONTH,fec_nac)

    que me selecciona la cantidad de alumnos que nacieron por mes, todo bien, el problema es que necesito ordenar la consulta ascendentemente por numero de mes, es decir: Enero, Febrero, Marzo,...

    Y mi consulta lo ordena descendentemente pero por nombre del mes: Abril, Agosto, Diciembre,...

    ¿Qué puedo hacer para que lo ordene por número de mes, pero que me muestre el nombre y no el número?.

    Nota: La consulta solo debe mostrar dos columnas: Mes y Cantidad_Alumnos.

    AYUDA!! No se que hacer!!! Por favor


    • Editado Leo Est domingo, 17 de junio de 2018 22:33
    domingo, 17 de junio de 2018 22:33

Respuestas

  • Gracias!!!!. Solo me gustaria decir que me marca un error que logre solucionar poniendo el Datepart tambien en el Group By:

    Select DATENAME(MONTH,fec_nac) as Mes, COUNT(*) as Cantidad_Alumnos from alumno
    group by DATENAME(MONTH,fec_nac), Datepart(Month,fec_nac)
    order by Datepart(Month,fec_nac)


    • Marcado como respuesta Leo Est domingo, 17 de junio de 2018 23:26
    • Editado Leo Est domingo, 17 de junio de 2018 23:27
    domingo, 17 de junio de 2018 23:25

Todas las respuestas

  • Hola Leo Est:

    Select DATENAME(MONTH,fec_nac) as Mes, COUNT(*) as Cantidad_Alumnos from alumno
    group by DATENAME(MONTH,fec_nac)
    order by Datepart(Month,fec_nac) /* la función Datepart extrae el mes en int */
    Un saludo
    • Marcado como respuesta Leo Est domingo, 17 de junio de 2018 23:26
    • Desmarcado como respuesta Leo Est domingo, 17 de junio de 2018 23:26
    domingo, 17 de junio de 2018 23:06
  • Gracias!!!!. Solo me gustaria decir que me marca un error que logre solucionar poniendo el Datepart tambien en el Group By:

    Select DATENAME(MONTH,fec_nac) as Mes, COUNT(*) as Cantidad_Alumnos from alumno
    group by DATENAME(MONTH,fec_nac), Datepart(Month,fec_nac)
    order by Datepart(Month,fec_nac)


    • Marcado como respuesta Leo Est domingo, 17 de junio de 2018 23:26
    • Editado Leo Est domingo, 17 de junio de 2018 23:27
    domingo, 17 de junio de 2018 23:25