Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   duda sobre consulta (https://www.clubdelphi.com/foros/showthread.php?t=78497)

Vlady 25-04-2012 01:16:26

duda sobre consulta
 
Amigos del club buenas a todos espero me puedan ayudar con la siguiente duda sobre una consulta que tengo SQL. primero trabajo con firebird 2.0 y delphi 7 mi problema es el siguiente:

Tengo una tabla de reservas donde tengo una fecha inicial y una fecha final y quiero saber en el momento de insertar un nuevo registro que no se encuentre una reserva en esas fechas tengo la siguiente consulta pero no me funciona cuando la nueva reserva esta unos días mas adelante que la fecha inicial y unos días mas atraz que la fecha final

Código SQL [-]
            SELECT ID FROM RESERVACION WHERE (CAST(fecha_inicio AS DATE)
            BETWEEN CAST(:FECHA1 AS DATE) AND CAST(:FECHA2 AS DATE)
            or (CAST(FECHA_FIN AS DATE)
            BETWEEN CAST(:FECHA1 AS DATE) AND CAST(:FECHA2 AS DATE))
            or (CAST(FECHA_INICIO AS DATE) <= CAST(:FECHA1 AS DATE) AND (CAST(FECHA_FIN AS DATE) >= CAST(:FECHA2 AS DATE))))
            CONFIRMAR = 'False'

la idea es que si no hay reservas para esas fechas devuelve la consulta vacía.

Gracias de antemano por la ayuda

Caral 25-04-2012 02:38:46

Hola
Firebird acepta IFF(), deberías pensar en esa posibilidad.
Saludos

Vlady 25-04-2012 15:48:24

Caral gracias por responder pero como seria en la misma consulta SQL o en un procedimiento?

Caral 26-04-2012 00:02:08

Hola
Se me ocurre algo asi:
No lo he probado.

Código SQL [-]
SELECT ID, IFF( fecha_inicio >= :Fecha_Reserva AND FECHA_FIN <= :Fecha_Reserva, 'Reservado', 'Libre' ) AS Reserva FROM RESERVACION

Seleccione el ID si la fecha de inicio es mayor que la de la reserva y menor que la de Fin, osea, entre las fechas.
Esto te dira si esta reservada esa fecha o libre, creo......:D
Saludos


La franja horaria es GMT +2. Ahora son las 08:42:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi