Cita:
Empezado por juanma92
Y como hago para consultar en una y luego en otra? Si en delphi desp necesito comunicar a un dbgrid? Por eso lo hacia todo en una consulta
|
Ah, bien, entonces creo que el problema es que hay que tener muy claro el concepto, a ver si lo he entendido: un cliente pide una habitación (o reserva) para entrar el 05.12.2012 y salir el 09.12.2012
Entonces hay que comprobar que tanto en reservadas como en ocupadas no estén entre esas fechas, bien.
Pienso que en lugar de buscar las ocupadas en esas fechas, hay que buscar las libres, por ejemplo, todas las que la fechaingreso sea mayor (¿o igual?) que la fecha salida de reservas/ocupadas serán válidas.
Y por el mismo motivo, todas las que fechasalida sea menor (¿o igual?) que fechaentrada de reservas/ocupadas también serán válidas.
Por supuesto, se supone que se controla que las fechas dadas por el cliente son correctas, fechaentrada < fechasalida
Suponemos que las fechas que ha pedido el cliente están en las variables de fecha: desdefecha, hastafecha
Código SQL
[-]select h.nrohabitacion
from habitaciones h
where h.habitacion not in (select r.idhabitacion
from clientereservahabitacion r
where r.fechasalida <= :desdefecha
or r.fechaentrada >= :hastafecha)
and h.habitacion not in (select o.idhabitacion
from clienteocupahabitacion o
where o.fechasalida <= :desdefecha
or o.fechaentrada >= :hastafecha)
order by h.nrohabitacion
Creo que es eso lo que quieres.