Pregunta

Necesito ayuda con una consulta? Tengo 2 tablas de reservas y unidades entre otros. reservas tabla tiene columnas Resid, rfrom (fecha y hora), RTO (fecha y hora), el estado (int), UnitID (clave externa). Estado 2 significa que es confirmado. Necesito conseguir todas las unidades libres en el período pedido, consulta tiene que devolver sólo que las unidades para las que no no se confirmó reservas (estado == 2) en el periodo solicitado (no existen). Estoy trabajando con el marco de la entidad lo que debe ser consulta eSQL (otra opción es usar procedimiento almacenado pero quiero evitar eso). Es la base de datos SQL 2005 expreso. También consulta debe filtrar las unidades en función de los valores de las unidades de mesa, pero eso no es un problema. Puedo hacer eso con LINQ en los resultados de la consulta (múltiples donde las declaraciones).

editar: Esta consulta está trabajando:


    select * from Units where
    not exists (select *
        from Reservations
        where Reservations.unitID = Units.unitID
        and Reservations.status = 2
        and (@datefrom between Reservations.rfrom and Reservations.rto-1
        or @dateto between Reservations.rfrom+1 and Reservations.rto
        or rfrom between @datefrom and @dateto-1 
        or rto between @datefrom+1 and @dateto))
and Units.category=@cat

¿Cómo se vería en SQL entidad? podría hacerlo con LINQ? nombres de entidad son las mismas que las tablas.

¿Fue útil?

Solución

termino usando procedimientos almacenados ...

Otros consejos

select value u from AEDMEntities.Units as u WHERE
not exists (select value r from AEDMEntities.Reservations as r
where  r.Unit.unitID = u.unitID and r.status = 2 AND 
(datetime '2009-7-7 00:00'between r.rfrom and r.rto 
or datetime '2009-7-7 00:00' between r.rfrom and r.rto 
or r.rfrom between datetime '2009-7-7 00:00'and datetime '2009-7-27 00:00' 
or r.rto between datetime '2009-7-7 00:00' and datetime '2009-7-27 00:00'))
AND u.category=3

Esto está funcionando. Pero no puedo escribir -1 o +1 a restar / add día como en SQL! ¿Cómo lograr que, sólo necesito para que sea parametrizada. La unidad es la clase abstracta que consta de 2 clases derivadas aplicación y habitaciones (tabla según el tipo de herencia), así que necesito para devolver sólo aplicaciones o habitaciones en función de parámetros de entrada método bienvenida a cualquier idea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top