Ordenamiento por mes {SQL}

3,030 views
Skip to first unread message

Sergio Cisak

unread,
Oct 27, 2013, 10:04:59 PM10/27/13
to publice...@googlegroups.com
Buenas a todos! Tengo la siguiente consulta: Como ordeno un SQL mediante el mes? O sea, que me aparezcan los meses en el orden que conocemos por los calendarios, y no por orden alfabetico. Gracias desde ya.

PD> He probado con MONTH(campo_fecha) pero no me ha resultado.

xor...@hotmail.com

unread,
Oct 28, 2013, 12:03:57 AM10/28/13
to publice...@googlegroups.com

El domingo, 27 de octubre de 2013 19:04:59 UTC-7, Sergio Cisak escribió:
Buenas a todos! Tengo la siguiente consulta: Como ordeno un SQL mediante el mes? O sea, que me aparezcan los meses en el orden que conocemos por los calendarios, y no por orden alfabetico. Gracias desde ya.

PD> He probado con MONTH(campo_fecha) pero no me ha resultado.
y si le asignas un campo numerico con el numero q corresponde al mes 

Sergio Cisak

unread,
Oct 28, 2013, 12:11:27 AM10/28/13
to publice...@googlegroups.com
Como haria eso en SQL?

HernanCano

unread,
Oct 28, 2013, 1:57:12 AM10/28/13
to publice...@googlegroups.com
La respuesta es MONTH(campo_fecha).
si no te ha funcionado es quizá (quizá) porque estás abarcando fechas del segundo semestre de un año y del primer semestre del año sgte, en cuyo caso no saldrían en orden aún con esta solución.

Para no disvariar más, debes mostrarnos lo que estás haciendo...............
.................................
................................
.............................

Guillermo MDQ

unread,
Oct 28, 2013, 9:47:46 AM10/28/13
to publice...@googlegroups.com
MONTH(campo_fecha).AND YEAR(campo_fecha).

Para que no se te mezclen los meses de distintos años, tienes que ordenar por mes y el año tambien.

Saludos
Guillermo

Walter Valle

unread,
Oct 28, 2013, 10:39:00 AM10/28/13
to publice...@googlegroups.com
Hola Sergio,

Es facil, pero ya dependera de la complejidad de tu actual consulta...

SELECT * FROM MiTabla order by DATEPART(YY, Fecha), DATEPART(mm, Fecha)


Walter Valle

HernanCano

unread,
Oct 28, 2013, 10:51:26 PM10/28/13
to publice...@googlegroups.com

Cuidado, Guillermo.

Lo que logras con MONTH(campo_fecha).AND YEAR(campo_fecha) no es ordenar, que es la pregunta; lo que se logra es que "tener datos en un rango de fechas, pero no ordenados por año y mes".

Para ordenar por fechas hay que tener dos campos: año y mes, "en ese orden".

Guillermo MDQ

unread,
Oct 29, 2013, 9:43:27 AM10/29/13
to publice...@googlegroups.com
Si, tenes razon Hernan, me confundi y entendi mal la consulta.

Saludos
Guillermo

Fidel Charny

unread,
Oct 29, 2013, 10:35:25 AM10/29/13
to publice...@googlegroups.com
Yo no sé si entiendo la consulta. Se podría hacer algo así (el ejemplo está basado en una tabla mía):
DIA1=DATE(2012,7,1)
DIA2=DATE(2013,6,30)
lcTabla="MOVIM"
SELECT fecha,idclien,gravado,total,;
YEAR(fecha)*100+MONTH(fecha) as periodo ,;
CMONTH(fecha)+" "+TRANSFORM(YEAR(fecha)) as nomperi ;
FROM (lcTabla) ;
WHERE FECHA BETWEEN DIA1 AND DIA2 ;
ORDER BY "periodo" ;
INTO CURSOR peCursor readwrite

SELECT peCursor
BROWSE

Al menos queda ordenado por período.

Jorge L. Florez C.

unread,
Oct 29, 2013, 2:50:08 PM10/29/13
to publice...@googlegroups.com
porque no hacer...

select *,left(dtos(campo_fecha),6) as orden from tabla where condicion order by orden

Saludos
Jorge Florez
Lima - Perú

Fernando D. Bozzo

unread,
Oct 29, 2013, 3:08:14 PM10/29/13
to publice...@googlegroups.com
Sergio, todo depende de lo que quieras hacer exactamente. La información que das es insuficiente.

Un select SQL ordenado por un campo fecha te deja todos los registro en orden cronológico, lo que implica que esta ordenado por año, mes y día.

¿Qué querés hacer? SI te explicás más sería mejor que estar dando información de a pedacitos.


Saludos.-

Alejandro Isla

unread,
Oct 29, 2013, 5:37:10 PM10/29/13
to publice...@googlegroups.com
Haciendo uso de la bola de cristal, las cartas de tarot y leyendo la frase "y no por orden alfabetico", la ouija me indica que tiene un campo tipo char ("enero","febrero", etc....)

En ese caso, lo mejor es crea un campo auxiliar con el nro. del mes y ordenar por ese campo.

Saludos.

Hernan Cano

unread,
Oct 29, 2013, 7:26:00 PM10/29/13
to publice...@googlegroups.com
Las solución ya la dieron Miguel y Jorge.


Reply all
Reply to author
Forward
0 new messages