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

Seleccionar fechas que no existen

Estas en el tema de Seleccionar fechas que no existen en el foro de Mysql en Foros del Web. Necesito hacer una query que me extraiga datos de una tabla tanto si existen filas como si no, pero mejor me explico con un ejemplo. ...
  #1 (permalink)  
Antiguo 04/03/2011, 02:48
 
Fecha de Ingreso: abril-2008
Mensajes: 93
Antigüedad: 16 años
Puntos: 10
Seleccionar fechas que no existen

Necesito hacer una query que me extraiga datos de una tabla tanto si existen filas como si no, pero mejor me explico con un ejemplo.

Tengo una tabla para guardar pagos y en ella se guarda el usuario y la fecha en que realiza el pago.

Si quiero ver los pagos de un usuario durante el mes pasado hago la consulta:

Código:
SELECT usuario, fecha, SUM(importe) AS total
  FROM pagos 
 WHERE usuario = 'pepe' 
   AND MONTH(fecha) = MONTH(DATE_SUB(CURDATE() , INTERVAL 1 MONTH))
 GROUP BY 1,2
y me devuelve:

Código:
usuario - fecha - total

pepe - 2011-02-02 - 100
pepe - 2011-02-04 - 90
...
Y yo, lo que necesito es que cuando no haya pagos (no existan filas) también me los devuelva:

Código:
usuario - fecha - total

pepe - 2011-02-01 - 0
pepe - 2011-02-02 - 100
pepe - 2011-02-03 - 0
pepe - 2011-02-04 - 90
pepe - 2011-02-05 - 0
pepe - 2011-02-06 - 0
...
¿Es posible simular este comportamiento?
  #2 (permalink)  
Antiguo 04/03/2011, 03:27
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Seleccionar fechas que no existen

Si tienes una tabla con todas las fechas donde hay pagos y quieres mostrar es muy facil con un LEFT JOIN, si no tienes esa tabla a mi no se me ocurre como (lo que no quiere decir que no se pueda hacer)
  #3 (permalink)  
Antiguo 04/03/2011, 05:08
 
Fecha de Ingreso: abril-2008
Mensajes: 93
Antigüedad: 16 años
Puntos: 10
Respuesta: Seleccionar fechas que no existen

Gracias por la respuesta, pero desgraciadamente no tengo más que los registros de los pagos.

Estoy pensando en construir una tabla con un solo campo de tipo fecha e ir introduciendo una fila por cada día con un cron, pero me parece un poco chapucero.

Otra opción, es inventarme los datos en php, pero tampoco me convence del todo.
  #4 (permalink)  
Antiguo 04/03/2011, 05:42
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Seleccionar fechas que no existen

Puedes sacar los datos que tengas en base de datos y luego mostrarlos como tu quieres con una función. Yo creía que sólo tenías acceso a la base de datos, no al programa también.

Etiquetas: fechas, seleccionar
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 07:13.