Specialoffer
Id (int)
ValidFrom (date)
ValidTo (date)
SpecialOfferExcludedDays
Id (int) (ForeignKey with Table1.Id)
DayId (int)
Days
DayId (int) (ForeignKey with Table3.DayId)
Name (text)
Specialoffer包含
'1', '2013-01-01', '2013-01-14'
'2', '2013-02-01', '2013-02-05'
'3', '2013-11-21', '2013-11-25'
SpecialOfferExcludedDays包含
'3', '4'
天包含
'1', 'Sunday'
'2', 'Monday'
'3', 'Tuesday'
'4', 'Wednesday'
'5', 'Thursday'
'6', 'Friday'
'7', 'Saturday'
我想寫一個查詢來實現以下;
從SpecialOffers表獲取所有ID,ValidFrom和ValidTo
的指定日期範圍之間從SpecialOffers排除任何記錄,如果日(例如星期二)在SpecialOfferExcludedDays用於指定ID的存在。它不限於1天。例如,一個ID可以被排除在週一和週六
我的查詢看起來像此刻,沒有邏輯的天
SELECT Id
FROM SpecialOffers
WHERE (ValidFrom > '2013-11-25'
AND ValidTo < '2013-11-30')
下列因此,例如,我正在做一個訂單今天預訂酒店,在2013年12月1日晚上。給我所有可能的特別優惠,有效期爲12月1日。考慮到某些日子無效的任何特別優惠
編輯
一個樣本交易可能會得到所有的Id,其中住宿是12月1日至12月25日(星期五和星期六除外)。
這可能嗎?或者我會更好地在我的C#應用程序中編寫這個邏輯。
你能給一些更多的數據和預期的結果? –
我已經添加了一些額外的數據 – Tommassiov
@ Tommo1977爲什麼要存儲每週的一天?這絕對可以從你的約會中提取。沒有? –