
30/05/2008, 23:40
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 10 meses Puntos: 300 | |
Respuesta: query pasando dos fechas a comparar aotras dos fechas Si los datos de fecha del formulario entran en el orden adecuado año-mes-dia y lo que buscas son las habitaciones entre cuya fecha_inic y fecha_fin de la base no haya ningún día que coincida con ningún otro del rango fechainicio y fechafin que incluyes en el formulario, prueba a ver si esto puede servirte
SELECT habitacion FROM reservas WHERE habitacion NOT IN (SELECT DISTINCT habitacion from reserva where (fechainicio<= fecha_inic AND fechafin>= fecha_inic) OR (fechainicio>= fecha_inic AND fechainicio<= fecha_fin))
La idea es que el rango entre las fechas no tenga ningún punto en común, y para eso hay que evitar las fechas coincidentes. Para que haya coincidencia, si la fechainicio es anterior o igual a fecha_inic, la fechafinal, debe ser mayor o igual que la fechainicio. Y si la fechainicio es posterior a fecha_inic, la fechainicio debe ser al mismo tiempo menor que la fecha_fin para entrar en ese rango.
Es sólo una propuesta. Compruébala. |