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

Consulta Dinámica por mes

Estas en el tema de Consulta Dinámica por mes en el foro de Mysql en Foros del Web. Buenas, Tengo una tabla de pedidos, que tiene un campo fecha, y necesito realizar una consulta, que segun el mes actual, me devuelva por cada ...
  #1 (permalink)  
Antiguo 13/10/2008, 08:56
 
Fecha de Ingreso: noviembre-2005
Mensajes: 405
Antigüedad: 18 años, 5 meses
Puntos: 0
Consulta Dinámica por mes

Buenas,

Tengo una tabla de pedidos, que tiene un campo fecha, y necesito realizar una consulta, que segun el mes actual, me devuelva por cada día del mes, cuántos pedidos se han realizado. La consulta me tendría que devolver algo como esto:

Fecha Pedidos
01/10/2008 2
02/10/2008 5
03/10/2008 10
04/10/2008 0
....
31/10/2008 1

En el caso que un día no se haya realizado un pedido, que ese día ponga 0

Saludos
Jaime
  #2 (permalink)  
Antiguo 13/10/2008, 11:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta Dinámica por mes

La cosa tiene dos soluciones:
1. Crear un barrido día por día para el período.
2. Cruzar los datos con una tabla conteniendo los días posibles.
En cualquiera de los dos casos la solución solamente se puede ejecutar dentro de un store procedure.

Una tercera solución es un derivado de la primera: Resolver lso días sin datos desde el código de la aplciación conforme el resultado de una consulta del tipo:
Código sql:
Ver original
  1. SELECT FECHA, COUNT(*) TOTALPEDIDOS
  2. FROM PEDIDOS
  3. GROUP BY FECHA;

El problema para crear una consulta que resuelva por sí misma el problema, es que no existe ninguna tabla con la que pueda cruzarse para obtener todos los días posibles del período, y por tanto no puedes resolver el estado NULL de la sumatoria de pedidos.
Si al menos tuvieses una tabla que supieras que siempre tiene algún registro con la fecha de cada día del período, se podría intentar...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 02:49.