Ver Mensaje Individual
  #2  
Antiguo 24-02-2005
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Reputación: 21
el_enigma1 Va por buen camino
Cita:
Empezado por CHiCoLiTa
Es el tipico programa de reserva de aulas y lo que quiero es que la query en cuestion me devuelva cuales estan ocupadas para no permitir reservarlas

Tengo 2 campos de tipo datetime (por cierto, estoy con SQL Server) y ahi es donde comparo las horas para saber si esta reservada o no

He probado tantas que no se si esta es la buena o no.
El problema que observo siempre es que si intento reservar un rango mas grande al que existe no me devuelve nada, por ejemplo si tengo reservado de 10 a 11, me permite reservar de 09 a 12 y hay existe una hora en la quye ya esta ocupada

No se si he conseguido explicarme bien, espero que si

Código SQL [-]
 select ID_AU
 from RESERVAS 
 where FECHA = '22/02/05' and (
     ('09:00:00' >= convert(varchar, HORA_DESDE, 108) and '09:00:00' <= convert(varchar, HORA_HASTA, 108)) 
 or    ('19:00:00' >= convert(varchar, HORA_DESDE, 108) and '19:00:00' <= convert(varchar, HORA_HASTA, 108)))

Evidentemente la fecha y las horas las mando por paramertros, lo he dejado asi para que no queden dudas

Gracias por haber leido el rollo que he contado
bueno creo que primero debe definir bien las cosas, si quieres las aulas que estan ocupadas, simplemente que te retorne la id de las que tienen valor en la hora y claro la hora

mas o menos asi,


Código SQL [-]
  select ID_AU, horadesde, horahasta
  from RESERVAS 
  
  where FECHA = variablefecha and horadesde is not null

con esto te retornara la idaula y las horas en la que esta reservada
claro para esto tu tabla debe tener la idaula y los dos campos de hora
Responder Con Cita