SQL Server - Consulta sql - Fechas

   
Vista:

Consulta sql - Fechas

Publicado por chelo553 (5 intervenciones) el 16/03/2009 16:25:48
Hola:
Necesito realizar un procedimiento para las consultas de disponibilidad de habitaciones de un hotel.
Tengo una tabla RESERVAS(idReserva,IdHabitacion,IdHotel FechaInicio,FechaFin)
Tengo que consultar la disponibilidad de habitaciones filtrando por numero de hotel y entre dos fechas.
Estoy realizando una subconsulta para filtrar los datos pero no puedo con las fechas:

Create Proc Disponibilidad
@idHotel int,
@fecha1 datetime,
@fecha2 datetime
as
Select * from Habitaciones where numHabitacion in
(
Select numHabitacion from Reservas where IdHotel = @idHotel and @fecha1 not between fechainicio and fechaFin and @fecha2 not between fechainicio and fechaFin.

Tengo problemas al filtrar estos datos, no se que està mal.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:Consulta sql - Fechas

Publicado por roger (173 intervenciones) el 16/03/2009 19:56:33
bueno, en realidad no se cual es el problema que tienes.
Pero, primero creo que te podrias ahorrar la subconsulta haciendo el join entre las tablas

Select * from Habitaciones h inner join Reservas r on r.numHabitacion = h.numHabitacion.......Etc.

Lo otro es que me imagino que el problema lo tienes en que no te esta trayendo datos que te deberia traer, para lo que serviria que nos dieras un ejemplo con tus datos reales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por chelo553 (5 intervenciones) el 17/03/2009 03:06:03
Antes que nada, muchas gracias por responder,
lo que quiero con este procedimiento es que me devuelva las habitaciones disponibles, segun las fechas que yo le paso y el idHotel, para eso busco en los registros de reservas y si no existen registros en Reservas de ese hotel entre las fechas que yo le paso, el procedimiento tendria que devolverme las habitaciones disponibles Para ese hotel.
Pero no se que estoy haciendo mal, ya que me devuelve cosas incorrectas.
Muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por carlos (2 intervenciones) el 07/03/2010 23:57:40
buenas tardes lo que sucede es lo sgte
tengo una base de datos en la cual registramos las fechas que el personal a trabajo en cierta oficina

me explico la informacion de las fechas esta desde 1980 hasta la actualidad y necesito hacer la consulta sgte :
todo personal que laboro durante todo el 2007 teniendo en cuando estas condiciones:
personas que ingresaron ese año o termino su contrato durante el año mencionado y aquellas que sigueron su contrato unos años mas.

tabla TBPERMOVIMTO
MOVFCINILABOR 'fecha inicio'
MOVFCFIN BETWEEN ' fecha termino'

es pero su ayuda gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por chelo553 (5 intervenciones) el 19/03/2009 14:38:06
Muchas Gracias, Pruebo y les aviso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por like (14 intervenciones) el 17/03/2009 16:29:35
Y si le cambias a:

Select * from Habitaciones where numHabitacion not in
(
Select numHabitacion from Reservas where IdHotel = @idHotel and fechainicio between @fecha1 and@fecha2 or fechafin between @fecha1 and @fecha2)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:Consulta sql - Fechas

Publicado por Isaias (3186 intervenciones) el 18/03/2009 00:28:40
Tal vez funcione, solo que en lo personal, no me gusta utilizar BETWEEN con fechas, yo lo cambiaria por >= y <=
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por chelo553 (5 intervenciones) el 19/03/2009 14:24:40
Muchas Gracias, lo voy a probar y te cuento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por chelo553 (5 intervenciones) el 20/03/2009 03:49:05
La verdad agradezco mucho porqueme funcionó esa consulta, con algunas retoques pero anduvo.
Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por like (2 intervenciones) el 20/03/2009 05:29:43
Que bien que ya te funciono ñ_ñ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por Juan Pablo (2 intervenciones) el 28/06/2010 18:25:09
chelo553, muchas gracias por postear esta duda, me ayudo mucho con el sistema de reservas que estaba implementando y ps asi como tu lo tienes lo agregue a mi consulta y me funcionó,

Muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sql - Fechas

Publicado por Juan Pablo (2 intervenciones) el 28/06/2010 18:28:11
Les dejo el código por si a alguien le llegá a servir, es un sistema de reservas de vehículos:

Consulta SQL:

"Select vl.id_vehiculo, vl.tipo_vehiculo, vl.imagen, vl.marca, vl.modelo, vl.vehiculo from vehiculos vl inner join reservas rs on
vl.id_vehiculo=rs.id_vehiculo
where rs.disponible='s' and rs.fecha_entrega not between '$datepicker' and '$datepicker1' and rs.fecha_devolucion not between '$datepicker' and '$datepicker1'";

Son dos tablas de la BD de donde traigo la info dependiendo de las fechas que el usuario introduzca...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar