Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2008, 19:01
Avatar de SkyWalker
SkyWalker
 
Fecha de Ingreso: enero-2002
Mensajes: 39
Antigüedad: 22 años, 3 meses
Puntos: 0
Filtrar resultados

No se como llamar al titulo de este post... prometo que busqué largo rato alquien con un problema parecido, sin suerte. Necesito una manita.

Tengo una tabla con los datos de usuarios otra con pagos, estos pagos dan derecho a un servicio de tal a tal fecha, estas dos fechas estan en la segunda tabla, lo que me interesa es que se avise a los usuarios cuando se acerca la fecha final del servicio.

El problema es que el usuario pague el sevicio por dos veces o más, por tanto se suma un nuevo periodo al anterior con otro registro desde la fecha final como inicial hasta la nueva fecha final, pero no quiero que le avise cuando cumpla el perido del primer pago sino del segundo o tercero, es decir del ultimo.

SELECT a.id,a.nombre,a.nick,MAX(b.fecha_fi) FROM tabla AS a LEFT JOIN tabla_pagos AS b ON a.id = b.mid GROUP BY b.mid

Esto es correcto y me da MAX(b.fecha_fi) la ultima fecha del servicio pero cuando le añado:

SELECT a.id,a.nombre,a.nick,MAX(b.fecha_fi) FROM tabla AS a LEFT JOIN tabla_pagos AS b ON a.id = b.mid WHERE fecha_fi>'2007-12-31' AND fecha_fi<'2008-01-14' GROUP BY b.mid

Suponiendo que hay registros cuya fecha final estan dentro de esas dos fechas de la consulta, muestra dichos registros correctamente, pero ¿qué pasa si un usario además tiene un pago con fecha final posterior?, no debería mostrarlo.

Por tanto creo que la solucion es volver a la primera consulta que he puesto que si me da la ultima fecha final y de los registros que me muestra selccionar solo el que esté entre las fechas... ESTO ES LO QUE NO SE HACER. Alguan idea?

Gracias.