Hola amigos.
Estoy haciendo mi proyecto de fin de carrera y me ha surgido una duda sobre una consulta. Os explico un poco de que va el tema:
El proyecto de fin de carrera trata de hacer una Web de una empresa que alquila coches. Mi duda viene cuando quiero comprobar en la BBDD si un vehículo esta ya reservado.
Conceptualmente se como hacerlo, el problema viene al generar la consulta, que no se muy bien como tratar el tema de las fechas. Os pongo mi "contextualización":
Código:
FECHA_INI -> Esto es el dia que empieza una reserva ya guardada en la BBDD.
FECHA_FIN -> Esto el dia que finaliza la reserva.
NUEVA_INI -> Esto es el dia que empieza la nueva reserva que quiero comprobar
NUEVA_FIN -> Y esto el dia que finaliza
Conceptualización:
IF ( FECHA_INI < NUEVA_FIN ) NO MOSTRAR VEHICULO
ELSE IF (NUEVA_INI < FECHA_FIN): NO MOSTRAR VEHICULO
ESE IF (NUEVA_INI > FECHA_INI AND NUEVA_FIN < FECHA_FIN) : NO MOSTRAR VEHICULO
ELSE: MOSTRAR VEHICULO
Esa es la idea, entonces mi problema viene al generar la consulta. Mi idea va por aqui:
Código:
SELECT "aqui los datos del vehiculo" FROM vehiculos WHERE (SELECT matricula, fecha_ini, fecha_fin FROM reservas WHERE $nueva_ini, $nueva_fin < fecha_ini OR $nueva_ini, $nueva_fin > fecha_fin)"
La condición del segundo WHERE seria lo que genera el ultimo ELSE de la conceptualizacion.
Bueno, llegado a este punto el problema es como escribir la condicion del segundo WHERE. Si me echais una mano estaré eternamente agradecido.
Espero haberme explicado bien. Si no lo entendeis os prepararé una imagen explicativa.
Muchas gracias a todos. Un saludo!!