0
我有一個像過濾數據
PERIODID PERIODSTART PERIODEND PRICE STARTDOW
1 2012-12-01 2012-12-10 10 6
2 2012-12-11 2012-12-20 20 -1
3 2012-12-21 2012-12-30 30 -1
一套時期東西意思就是保留在第1期開始,必須在星期六,而不是週期2和3
如果我從2012-12-10 - 2012-12-15有預訂我想> - 過濾日期爲幾天(不是問題) - 檢查是否保留星期六開始。過濾器應該只用於頂部(或第一行),我不知道如何做到這一點。如果預訂沒有在星期六開始,則不應返回任何行。
我試圖
select * from periods p
where
((@ReservationStart between p.periodstart and p.periodend)
or
(@ReservationEnd between p.periodstart and p.periodend))
and ((select top 1 datepart(weekday, startdow) from periods where p.hotelID = period.hotelID order by period.periodstart) in (@datepart(weekday, @ReservationStart), -1))
有沒有辦法做的更好,或者優化代碼對於大數據量的更好嗎?
是的,但我也想一)返回受預約日期的所有行,b)檢查如果對應於預定開始日期的第一行還對應於強制性DOW(DATEFIRST = row.DOW) – mko
OK ,那麼:返回預訂的所有階段,但僅限於開始日期落在允許的DOW中,是的? –