Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Sistaxis SQL, para obtener resultado esperado (https://www.clubdelphi.com/foros/showthread.php?t=94304)

viverosjosem 19-11-2019 04:07:13

Sistaxis SQL, para obtener resultado esperado
 
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.

[IMG]C:\Users\Zetrix\Pictures\Reservas.jpg[/IMG]

Cita:

+--------------------------------------------------------------------
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

Cita:

Empezado por viverosjosem (Mensaje 534422)
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.


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.

Código SQL [-]
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.


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.


La franja horaria es GMT +2. Ahora son las 01:04:41.

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