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

Filtrar resultados

Estas en el tema de Filtrar resultados en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/01/2008, 19:01
Avatar de 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.
  #2 (permalink)  
Antiguo 03/01/2008, 20:14
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Filtrar resultados

Creo que lo necesitas se puede hacer con un HAVING... esto es como un WHERE pero que se ejecuta luego de la consulta... es decir, todos los registros se usan para el GROUP BY... y luego de eso se filtra con el HAVING.
  #3 (permalink)  
Antiguo 11/01/2008, 19:00
Avatar de SkyWalker  
Fecha de Ingreso: enero-2002
Mensajes: 39
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Filtrar resultados

Gracias pragone ... investigaré sobre el asunto, ya pensaba que me quedaba sin respuesta y tocandome hacer el filtrado via php... gracias
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:40.