PDA

Ver la Versión Completa : Sistaxis SQL, para obtener resultado esperado


viverosjosem
19-11-2019, 04:07:13
Hola Amigos.
Tengo una aplicacion para reserva hotelera desarrollada en Delphi con Paradox. Estoy en un proceso de migracion a SQL con FireBird. Pero me e encontrado con algunos inconvenientes.

Necesito saber como deberia ser una consulta SQL, para determinar si existe disponibilidad (por Ejemplo), para el periodo comprendido entre el: 18-Feb-2020 al 20-Feb-2020. Lo cual nos deberia dar como resultado, segun la grafica, Deptos: 101 y 103, (que presentan dias libres para el periodo solicitado).

En paradox, lo tenia resulto. Pero no se como lograr esto con una consulta SQL, porque los datos requeridos no estan registrados en la tabla, pues, en la tabla solo se registran las fechas de reservas solicitadas. Y lo que requerimos es poder determinar la disponibilidad (osea, si hay dias libres para un periodo determinado).

Espero haberme explicado bien.

Les dejo una grafica de reserva mensual, para orientarse. Y una plantilla con los datos de las reservas registradas y representadas en la grafica.

C:\Users\Zetrix\Pictures\Reservas.jpg


+--------------------------------------------------------------------
1 2 3
!Depto! 123456789012345678901234567890
+-------+-----+-------------------------------------------------------
Enero ! 101 ! xxxxxxxxxx xxxxxxxxxxx
Febrero! 101 ! xxxxxxxxxxxxxxx xxxxxxxx
Enero ! 103 ! xxxxx xxxxxxxxxxxx xxxxx
Febrero! 103 ! xxxxxxxxxx xxxx xxx
Enero ! 105 ! xxxxx xxxxxxxxxx xxxxxx xx
Febrero! 105 ! xxxxxxxxxxx xxxxxx xx
+--------------------------------------------------------------------

+------------------------+--------------
! Archivo Rservas
+-----+-----------------+--------------
Depto.! Desde ! Hasta
+-----+------------+-------------------
101 ! 01-01-2020 ! 10-01-2020
101 ! 17-01-2020 ! 26-01-2020
101 ! 04-02-2020 ! 17-02-2020
101 ! 22-02-2020 ! 29-02-2020
103 ! 01-01-2020 ! 05-01-2020
103 ! 07-01-2020 ! 17-01-2020
103 ! 22-01-2020 ! 26-01-2020
103 ! 08-02-2020 ! 14-02-2020
103 ! 21-02-2020 ! 24-02-2020
103 ! 27-02-2020 ! 29-02-2020
105 ! 01-01-2020 ! 05-01-2020
105 ! 07-01-2020 ! 17-01-2020
105 ! 22-01-2020 ! 30-01-2020
105 ! 04-02-2020 ! 14-02-2020
105 ! 19-02-2020 ! 24-02-2020
105 ! 28-02-2020 ! 29-02-2020
+----+------------------+------------


Me habria gustado incrustar una imagen con la grafica. Pero no supe como hacerlo.

De antemano gracias.
Jose Miguel.

Casimiro Notevi
19-11-2019, 10:58:07
Me habria gustado incrustar una imagen con la grafica. Pero no supe como hacerlo.
Súbela a algún hosting y la enlazas, por ejempolo a https://subefotos.com/

viverosjosem
19-11-2019, 13:08:37
Gracias Casimiro.
Aqui va el enlace con la imagen que queria mostrar.

https://thumbs.subefotos.com/7054724d51c97585f235b5bf17158540o.jpg
Saludos.

viverosjosem
19-11-2019, 13:10:04
No. quedo muy mal, no funciono.
favor no tomar en cuenta. solo se prestara para confucion.

Saludos.
y Gracias.

viverosjosem
19-11-2019, 13:46:14
Vi en este mismo foro SQL.

Enlace: "Sintaxis SQL, por Jose Roman". Que incrustaron imagenes, directamente despues de la consulta.
Me podrian decir como hacer eso, para poder complementar mejor mi consulta.

Espero, no se pierda el sentido inicial de esta consulta, al preguntar como subir imagenes.

Gracias.
Saludos.

movorack
19-11-2019, 13:52:37
Hola, solo con los datos que nos das no se podría obtener los que están disponibles.

Pensando que puede que tengas una tabla con las habitaciones a reservar, podría pensar que algo así puede serte de ayuda.


SELECT * FROM (
SELECT
A.DEPTO, B.DESDE, B.HASTA
FROM DEPTOS A
LEFT OUTER JOIN RESERVAS B
ON A.DEPTO = B.DEPTO
AND (B.DESDE BETWEEN '18/02/2020' AND '20/02/2020'
OR B.HASTA BETWEEN '18/02/2020' AND '20/02/2020'
OR '18/02/2020' BETWEEN B.DESDE AND B.HASTA
OR '20/02/2020' BETWEEN B.DESDE AND B.HASTA)
) S1
WHERE DESDE IS NULL
ORDER BY DEPTO

viverosjosem
19-11-2019, 14:48:03
Hola Movorac.
gracias por responder.

Efectivamente existe una archivo con la cantidad y tipos de departamentos por edificio. pero para determinar la disponibilidad de algun departamento, para un periodo solicitado, solo podemos evaluar lo que ya esta reservado, para poder determinar que dias aun estan libres, para poder realizar la reserva solicitada.

Aqui va un nuvo enlace con la imagen. espero que esta vez sirva.
https://fotos.subefotos.com/7054724d51c97585f235b5bf17158540o.png

Aqui la tabla con los departamentos, y dias ya reservados.
+------------------------+--------------
! Archivo Rservas
+-----+-----------------+--------------
Depto.! Desde ! Hasta
+-----+------------+-------------------
101 ! 01-01-2020 ! 10-01-2020
101 ! 17-01-2020 ! 26-01-2020
101 ! 04-02-2020 ! 17-02-2020
101 ! 22-02-2020 ! 29-02-2020
103 ! 01-01-2020 ! 05-01-2020
103 ! 07-01-2020 ! 17-01-2020
103 ! 22-01-2020 ! 26-01-2020
103 ! 08-02-2020 ! 14-02-2020
103 ! 21-02-2020 ! 24-02-2020
103 ! 27-02-2020 ! 29-02-2020
105 ! 01-01-2020 ! 05-01-2020
105 ! 07-01-2020 ! 17-01-2020
105 ! 22-01-2020 ! 30-01-2020
105 ! 04-02-2020 ! 14-02-2020
105 ! 19-02-2020 ! 24-02-2020
105 ! 28-02-2020 ! 29-02-2020
+----+------------------+------------

Gracias.
Saludos.
Jose Miguel.