Foros Club Delphi

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

sanz 03-02-2006 18:43:27

Consulta SQL
 
Hola a todos, tengo un problema lo que sucede es que estoy haciendo un sistema de hospedaje y reservaciones de un hotel y en el formulario de reservaciones tengo un datetimepicker que selecciono la fecha de llegada una caja de texto para el numero de noches un combo para el tipo de habitacion (en base a ese dato esta el precio de la habitacion) y cuando haga click en verificar la disponibildad me salgan las habitaciones disponibles para esa fecha segun el tipo de habitacion elegido, el problema es que he intentado pero no me sale nada espero me puedan ayudar:confused:

roman 03-02-2006 18:57:37

Aja, ¿y qué es lo que has intentado? En principio no parece difícil, sólo tienes que armar tu consulta SQL estableciendo los criterios de búsqueda:

Código SQL [-]
select * from habitaciones
where tipo_habitacion = :tipo and fecha = :fecha

Entonces, al momento de hacer la consulta sustituyes los parámetros:

Código Delphi [-]
Query.ParamByName('tipo').AsInteger := ComboTipoHabitacion.ItemIndex;
Query.ParamByName('fecha').AsDate := DateTimePicker.Date;

Query.Open;

// Saludos

sanz 03-02-2006 19:06:51

Ree
 
tienes razon parece sencillo nO??.
Bueno lo que pasa es que hay una fecha de llegada y una fecha de salida, la consulta me tiene que verificar la disponibilidad entre esos dias, por ejemplo si la fecha de llegada el el 10 de febrero y esto 2 noches quiere decir q la fecha de salida es el 12 de febrero tiene que verificar la disponibilidad de esas fechas. espero puedas responder esto TAN FACIL:confused:

maeyanes 03-02-2006 19:11:51

Puedes verificar las dos fechas con BETWEEN.

Código SQL [-]
select * from habitaciones
where tipo_habitacion = :tipo and fecha between :fecha_entrada and :fecha_salida



Saludos...

Thales 04-02-2006 13:46:10

a ver si te sirve algo como esto, aunque no dices los campos que tienes en la base de datos

Código SQL [-]
select * from Habitaciones
 where Tipo = :Tipo
   and (FechaSalida <= :Fecha or FechaLlegada >= :Fecha + :Noches)

Un saludo

Thales 04-02-2006 15:32:49

O mejor esto
 
Pensándolo mejor, yo mantendría dos tablas en relación maestro/detalle: Habitaciones y Reservas y entonces la consulta que pides podría quedar algo así:

Código SQL [-]
select * from Habitaciones
 where Tipo = :Tipo and not HabitNo in (
    select HabitNo from Reservas
     where FechaLlegada <= :FechaLlegada and :FechaLlegada < FechaSalida
        or FechaLlegada < :FechaSalida and :FechaSalida <= FechaSalida)

Un saludo


La franja horaria es GMT +2. Ahora son las 03:51:02.

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