![]() |
Ayuda ...Consulta Sql Hola. Estoy haciendo una pagina de reservas de hoteles en la que seleccionas hotel, fecha entrada, fecha salida , el numero de habitaciones a reservar y que te muestre las habitaciones disponibles para esas fechas y que no muestre las habitaciones ocupadas. Alguien sabe como hacerlo? Mis tablas: ->Hoteles IDHotel#Nombre#estrellas ->habitaciones NumeroHabitacion#IDHotel#TipoDeHabitacion ->HabitacionesReservadas NumeroHabitacion#IDHotel#NumeroDeReserva ->Reservas NumeroDeReserva#Fechaentrada#FechaSalida Tengo esta consulta que encontre en este foro pero me muestra las habitaciones que ya tengo reservadas. Hotel--->101 Fechaentrada: 2008-05-05 Fecha salida: 2008-05-22 SELECT habitaciones.NumeroHabitacion FROM habitaciones WHERE habitaciones.NumeroHabitacion Not In (SELECT DISTINCT habitacionesreservadas.NumeroHabitacion FROM reservas, habitacionesreservadas WHERE (reservas.FechaEntr<='2008-05-05'AND reservas.FechaSal>'2008-05-22') OR (reservas.FechaEntr<='2008-05-22'AND reservas.FechaSal>'2008-05-22') OR (reservas.FechaEntr>'2008-05-05'AND reservas.FechaSal<'2008-05-22') AND habitacionesreservadas.NumReserva=reservas.NumRese rva) AND IDHotel='101'; URGENTE.......:-) GRACIAS. |
Re: Ayuda ...Consulta Sql Mira si te sirve.... http://www.forosdelweb.com/f86/calcu...fechas-586007/ no ireis a la misma clase... Quim |
Re: Ayuda ...Consulta Sql Hola. Gracias por responder pero ya he visto este tema y es el que he utilizado para el select pero no me funciona. |
Re: Ayuda ...Consulta Sql Esto debe mostrarte las no reservadas para esas fechas: SELECT habitacion FROM reserva WHERE habitacion NOT IN (SELECT habitacion from reserva where ('2008-05-01' <= fechadesde AND '2008-05-06' >= fechadesde) OR ('2008-05-01' >= fechadesde AND '2008-05-01' <= fechahasta)) y eso, creo, funciona para 2008-05-01 fecha de entrada propuesta y 2008-05-06 fecha de salida. Por lo demás, creo que es lo que te habías traído. Tendrás que adaptar la consulta a tu tabla y relaciones. |
Re: Ayuda ...Consulta Sql Cita:
Cita:
Quim |
Respuesta: Ayuda ...Consulta Sql Con esta consulta no funcionaria igual : SELECT hoteles.Nombre, NumeroHabitacion FROM hoteles inner join habitaciones ON hoteles.IDHotel=habitaciones.IDHotel WHERE habitaciones.NumeroHabitacion Not In (SELECT NumeroHabitacion FROM reservas inner join habitacionesreservadas on habitacionesreservadas.NumReserva=reservas.NumRese rva WHERE reservas.FechaEntr>='2008-05-05'AND reservas.FechaSal<='2008-05-22') Porque me mostrara las habitaciones que no esten en ese intervalo de fecha |
Respuesta: Ayuda ...Consulta Sql Podríamos probar algo así: Código: SELECT H.Nombre HA.NumeroHabitacion, HA.TipoHabitaciónExistiría otro método a mi juicio, bastante eficiente, pero que requiere el uso de Store Procedures. |
| La zona horaria es GMT -6. Ahora son las 21:30. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.