Ver Mensaje Individual
  #1  
Antiguo 10-08-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Reputación: 21
VRO Va por buen camino
Problema conuna consulta select...not in (select ...)

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:

Código:
 108
 110

y no me tienen que salir ninguno de aqui:
Código:
 88
111
113
114
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
Código:
108
        110
       113
       114
lo 2 ultimos resultador no tendrian que salir, y si por el contrario lo
pongo al final
Código:
  108
110
88
111
.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:

Última edición por VRO fecha: 10-08-2005 a las 20:31:51.
Responder Con Cita