Tengo una tabla llamada registro, en ella almaceno los datos de personas que paguen un servicio mensualmente o semestralmente, deseo mostrar al usuario los que están próximos a expirar para que el pueda avisarles y que renueven el servicio y la estructura de la tabla es la siguiente:
Tabla registro:
idregistro
personas_documento
fecha_inicio
fecha_fin
tipo
valor
el id es un valor unico y es incremental, luego esta el documento de la persona, la fecha de inicio que es cuando pago por el servicio y la fecha final es el dia que vence esa suscripcion, el tipo es si es mensual o semestral y el valor es lo que pago por ese servicio.
Aqui viene mi problema
Resulta que he logrado mostrar los resgistros que se venceran dentro de 3 o menos dias teniendo encuenta la fecha actual de la siguiente manera:
Código SQL:
Ver original
SELECT*FROM registro WHERE datediff(fecha_fin,variable_fecha_actua)<=3
el resultado son los registros en los que su fecha final sea menor o igual a 3 dias y mostrara al usuario esa informacion.
Ahora teniendo en cuenta esto, el usuario le comunicara a la persona y ella decidirá renovar su suscripción de manera que la fecha inicial será la fecha final y la nueva fecha final será dentro de uno o seis meses segun sea el caso.
El registro anterior seria el siguiente:
idregistro | personas_documento | fecha_inicio | fecha_fin | tipo | valor |
1 | 55555 | 2015-03-01| 2015-04-01 | Mensual | 30000|
El nuevo registro quedaría asi:
idregistro | personas_documento | fecha_inicio | fecha_fin | tipo | valor |
2 | 55555 | 2015-04-01| 2015-05-01 | Mensual | 30000|
De manera que tenemos dos registros de a misma persona, pero si realizo de nuevo la consulta:
Código SQL:
Me mostrará que el registro va a expirar porque claramente cumple con la condicion del where el primer registro. Ver original
SELECT*FROM registro WHERE datediff(fecha_fin,variable_fecha_actua)<=3
Lo que quiero es que al renovar la suscripción deje de mostrarme el registro anterior y me tome el registro mas nuevo, teniendo en cuanta que habrán muchas personas registradas en el sistema si hace esto ya no me mostrará que el registro va a expirar sino que está al día.
Algunas nociones que tengo son seleccionar el idregistro mayor de cada persona y realizar la condición pero no se como hacerlo porque no tengo idea realmente