Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consulta por mes

Estas en el tema de Consulta por mes en el foro de Mysql en Foros del Web. Hola, tengo que hacer una consulta y no tengo ni idea de como hacerla. Tengo que saber cuantas veces aparece cada mes del año en ...
  #1 (permalink)  
Antiguo 05/06/2013, 12:24
 
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 1
Consulta por mes

Hola, tengo que hacer una consulta y no tengo ni idea de como hacerla.

Tengo que saber cuantas veces aparece cada mes del año en una tabla, para hacer una gráfica de cuantos pedidos hay en cada mes.

La tabla es pedidos, una de las columnas es fecha, y la fecha esta así: 2013-05-13.

Solo he conseguido sacar todos los meses en un array, pero creo que se puede hacer una consulta que me devuelva exactamente lo que necesito con group by, lo que pasa es que no llego a entender como funciona..

Alguien sabe como se puede hacer??

Muchas gracias de antemano!!
  #2 (permalink)  
Antiguo 05/06/2013, 12:33
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta por mes

Hola clarova:

Si no sabes cómo funciona el GROUP BY, pues creo que tienes un grave problema, y antes que cualquier cosa deberías de comenzar por leer cualquier libro de SQL para principiantes...

La idea, como su nombre lo dice es AGRUPAR registros que tengan características similares... dependiendo de la función que utilices es lo que hace, así por ejemplo la función COUNT como podrás imaginar CUENTA cuantos registros cumplen con el criterio de agrupación, SUM pues realiza la suma de los registros y las finciones MIN o MAX obtienen el valor mínimo o máximo del grupo de registros.

En tu caso, pues utilizarías la función COUNT para determinar el número de pedidos... como tip, utiliza las funciones de fecha YEAR y MONTH para obtener el mes y el año...

Observa este ejemplo:

Código MySQL:
Ver original
  1. mysql> SELECT fecha, YEAR(fecha), MONTH(fecha) FROM fechas;
  2. +------------+-------------+--------------+
  3. | fecha      | YEAR(fecha) | MONTH(fecha) |
  4. +------------+-------------+--------------+
  5. | 2013-03-01 |        2013 |            3 |
  6. | 2013-03-02 |        2013 |            3 |
  7. | 2013-04-03 |        2013 |            4 |
  8. | 2013-04-04 |        2013 |            4 |
  9. | 2013-04-05 |        2013 |            4 |
  10. | 2013-05-06 |        2013 |            5 |
  11. | 2013-05-06 |        2013 |            5 |
  12. | 2012-02-01 |        2012 |            2 |
  13. | 2012-02-02 |        2012 |            2 |
  14. | 2012-06-03 |        2012 |            6 |
  15. +------------+-------------+--------------+
  16. 10 rows in set (0.03 sec)

Aunque tienes fechas distintas TIENES AÑOS Y MESES SIMILARES por lo tantos puedes agrupar por estos dos campos...

Haz algunas pruebas y nos comentas:

Saludos
Leo.
  #3 (permalink)  
Antiguo 05/06/2013, 14:53
 
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Consulta por mes

Muchas gracias!!! Al final me ha quedado así:

Código:
"SELECT MONTH(fecha) AS mes, COUNT(MONTH(fecha)) AS cantidad FROM pedidos WHERE YEAR(fecha)='2013' GROUP BY MONTH(fecha)"

Etiquetas: tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.