伙计们,这里是我所遭受的情况;日期间隔分配计算 - 日期计算
我在我的数据库上有住宿产品。每间酒店下方都有预约时间间隔。并在很短的时间内有房型,价格和分配。
所以可以这么说;
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