夥計們,這裏是我所遭受的情況;日期間隔分配計算 - 日期計算
我在我的數據庫上有住宿產品。每間酒店下方都有預約時間間隔。並在很短的時間內有房型,價格和分配。
所以可以這麼說;
HOTEL A
01.05.2011 - 25.05.2011
Room A : 3 Allotment daily, 34 USD
Room B : 4 Allotment daily, 45 USD
26.05.2011 - 14.06.2011
Room A : 3 Allotment daily, 45 USD
Room B : 4 Allotment daily, 67 USD
另一方面,我的數據庫上有一個預留表,它包含預留詳細信息。可以這麼說;
一個人預訂了酒店A *爲之間的2011年5月22日 - 2011年5月30日和室A.此預訂已保存到數據庫中也是如此。
問題是這樣的;
我該如何計算分配?在我的例子中,5月22日,23日,24日,25日,26日,27日,28日,29日的A房分配需要爲2。我需要計算這一點,因爲我不會在請求的日期間隔之間顯示任何日期的分配爲0的房間。
我使用c#實體框架進行計算,我的數據庫在ms sql server上。一個存儲過程的例子也不錯。 Thatnks!
編輯: 這是我想要的示例代碼;
declare @a as table(a date) declare @b as table(b date) insert @a values('2011-05-22') insert @b values('2011-05-30')
;with e as(select a as dayt,0 as lvl from @a aa
union all select DATEADD(DAY,1,aa.dayt) as dayt, lvl+1 from @b bb inner join e aa ON aa.dayt<bb.b)
select * from e
嗯,看起來像不是一個有趣的話題:S – tugberk 2011-04-18 16:43:41
不是很清楚應該在基礎表中做出什麼樣的改變。總之,預期的結果是什麼(在存儲數據和顯示數據方面)? – 2011-04-18 17:09:28
@andriy我只是在尋找一個粗略的想法。我怎樣才能在這裏處理這個問題?我需要在這裏玩日期時間,但是我需要玩哪種方式,我不確定。 – tugberk 2011-04-18 17:19:12