Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
ayuda

Disculpa, como pongo la estructura? xq no se como hacerlo, soy nuevo. Gracias.
Responder Con Cita
  #2  
Antiguo 29-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
Nose si sera asi pero te lo paso

Nose si sera asi pero te paso las estructuras:
TABLA HABITACIONES
NroHabitacion - IdTipo - idHabitacion

TABLA ClIENTERESERVAHABITACION
IdCliente - IdHabitacion - FechaIngreso - FechaSalida - ValorReserva - Seña

TABLA CLIENTEOCUPAHABITACION
IdCliente - IdHabitacion - FechaIngreso - FechaSalida - ValorReserva - Seña

El fin es mostrar todas las habitaciones de la tabla habitaciones del tipo que me pasan por parametro y que esten libres entre dos fechas que me pasan por parametro para hacer la reserva. Es decir, de las habitaciones de la tabla habitaciones no debe mostrar ademas, las que esten reservadas o ocupadas en esas fechas(es decir filtrar por las fechas que me pasan y las fechas de ingreso y salida). En fin, los filtros se hacen por el IdTipo de la tabla habitaciones y por las fechas de ingreso y salida que estan en la tabla RESERVA y OCUPADOS. espero sepan entender. Gracias
Responder Con Cita
  #3  
Antiguo 29-11-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 688
Poder: 21
olbeup Va camino a la fama
Hola Juanma92

No se si has visto lo que te conteste en esta consulta, lo único que tienes que hacer es adaptarla a lo que quieres.

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #4  
Antiguo 29-11-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.674
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Ya me parecía que me sonaba esa pregunta y ese select. He unido ambos hilos, por favor, si no has conseguido solucionar tu duda entonces no abras otro hilo, sigue en el que has creado primeramente. Gracias por tu colaboración.
Responder Con Cita
  #5  
Antiguo 29-11-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.674
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Creo que mejor lo haces con un stored procedure, le pasas las fechas que solicita el cliente y ahí lo procesas mejor.

¡Ops!, con access , creo que no puedes.

Entonces te aconsejo el "divide y vencerás?. Primero compruebas en la tabla de ocupadas y si está libre entonces compruebas en la tabla reservas. En dos pasos.
Más simple y claro.
Responder Con Cita
  #6  
Antiguo 29-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
Y como lo hago?

Y como hago para consultar en una y luego en otra? Si en delphi desp necesito comunicar a un dbgrid? Por eso lo hacia todo en una consulta
Responder Con Cita
  #7  
Antiguo 29-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
Hola olbeup, sisi lo vi, y lo hice asi y me salio. Gracias. Ahora en esta quise hacer algo parecido agregando parametros a cada una de las subconsultas y un parametro mas en el where. Pero no me devuelve nada
Responder Con Cita
  #8  
Antiguo 29-11-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.674
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por juanma92 Ver Mensaje
Y como hago para consultar en una y luego en otra? Si en delphi desp necesito comunicar a un dbgrid? Por eso lo hacia todo en una consulta
Ah, bien, entonces creo que el problema es que hay que tener muy claro el concepto, a ver si lo he entendido: un cliente pide una habitación (o reserva) para entrar el 05.12.2012 y salir el 09.12.2012
Entonces hay que comprobar que tanto en reservadas como en ocupadas no estén entre esas fechas, bien.
Pienso que en lugar de buscar las ocupadas en esas fechas, hay que buscar las libres, por ejemplo, todas las que la fechaingreso sea mayor (¿o igual?) que la fecha salida de reservas/ocupadas serán válidas.
Y por el mismo motivo, todas las que fechasalida sea menor (¿o igual?) que fechaentrada de reservas/ocupadas también serán válidas.
Por supuesto, se supone que se controla que las fechas dadas por el cliente son correctas, fechaentrada < fechasalida

Suponemos que las fechas que ha pedido el cliente están en las variables de fecha: desdefecha, hastafecha
Código SQL [-]
select h.nrohabitacion
from habitaciones h
where h.habitacion not in (select r.idhabitacion
                           from clientereservahabitacion r
                           where r.fechasalida <= :desdefecha
                           or    r.fechaentrada >= :hastafecha)
and h.habitacion   not in (select o.idhabitacion
                           from clienteocupahabitacion o
                           where o.fechasalida <= :desdefecha
                           or    o.fechaentrada >= :hastafecha)
order by h.nrohabitacion
Creo que es eso lo que quieres.

Última edición por Casimiro Noteví fecha: 29-11-2012 a las 14:27:24.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta entre 2 fechas. DeLiRioS MySQL 14 29-04-2013 18:36:35
Consulta Mysql Suma entre rango de fechas kaeltas MySQL 4 22-06-2012 21:30:44
Consulta entre fechas con ADO radenf Varios 7 16-12-2010 12:06:35
Obtener consulta entre fechas maravert MySQL 1 16-11-2009 22:44:15
slq entre dos fechas comparar fechas taru MySQL 2 30-07-2007 16:10:36


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


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