Hola , estoy un poco desesperada porque no veo cual es
el fallo en la consulta, me pasa una cosa un tanto estraña.
Vereis la consulta que yo hago es la siguiente:
Código Delphi
[-]
SELECT DISTINCT
RESERVA.COD_R,RESERVA.FECHAI,RESERVA.FECHAF,
RESERVA.FECHA_SUS,REGIMEN.TIPO,RESERVA.ENTRADA_REG,
RESERVA.ADULTO,RESERVA.NINO,RESERVA.BEBE,RESERVA.ESTADO,
HAB_RESERVADA.COD_HAB
FROM RESERVA,CLIENTE,EMPRESA,REGIMEN,HAB_RESERVADA
WHERE RESERVA.COD_R=HAB_RESERVADA.COD_R
AND RESERVA.COD_REG=REGIMEN.COD_REG
AND ((RESERVA.FECHAI>=:FI) AND
(RESERVA.FECHAF<=:FF)) OR
((RESERVA.FECHAF>=:FI) AND (RESERVA.FECHAF<=:FF)
AND (RESERVA.FECHAF<=:FF) AND (RESERVA.DIFMES>=:FI)
AND (RESERVA.DIFMES<=:FF))OR ((RESERVA.FECHAI>=:FI)
AND (RESERVA.DIFMES>:FF))
AND RESERVA.COD_R NOT IN (SELECT distinct(ESTANCIA.COD_R)
FROM ESTANCIA)
Lo que yo pretendo conseguir es que ademas de que la reserva se
encuentre entre esas 2 fechas FI y FF y coincida con una habitacion de la tabla hab_reservada y con un regimen de la tabla regimen no se encuentre en la tabla estancia. Pues bien los resultados con la consulta bien hecha
son:
y no me tienen que salir ninguno de aqui:
pero lo que me sale a mi varia dependiendo de si este trozo de codigo
que os pongo a continuacion lo pongo inmediatamente detras del where ó como aparece en la 1ª consulta delphi.
Código Delphi
[-]
RESERVA.COD_R NOT IN (SELECT distinct(ESTANCIA.COD_R) FROM ESTANCIA)
Si lo pongo detras del where sale esto
lo 2 ultimos resultador no tendrian que salir, y si por el contrario lo
pongo al final
.Despues de toda esta parrafada como puedo hacer para acotar
en la consulta y que me saque las reservas (cod_r) que cumplan :
no esten en la tabla estancias y ademas que tengan las codiciones
de fecha anteriores (Fi, FF)
Espero no haberme liado demasiado. POr favor si no entendeis algo
de lo que os explico me lo comunicais.
Es sumamente necesario: