ребята, вот ситуация, от которой я страдаю;
У меня есть продукты для размещения в моей базе данных. и под каждым отелем есть периоды, которые являются интервалами дат для бронирования. и в определенные периоды времени существуют типы номеров, их цены и распределение.
так скажем так;
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
с другой стороны, в моей базе данных есть таблица бронирования, в которой хранятся данные бронирования. скажем так;
парень сделал заказ на ОТЕЛЬ А * на период 22.05.2011 - 30.05.2011 и на номер А. Эта резервация также была сохранена в базе данных.
проблема заключается в следующем;
как я могу рассчитать выделение здесь? В моем примере выделение комнаты А должно быть 2 на 22, 23, 24, 25, 26, 27, 28, 29 мая. Мне нужно рассчитать это, потому что я не буду показывать комнату, в которой выделено 0 для любой даты между запрошенным интервалом дат.
Я использую C # Entity Framework для целей расчета, и моя база данных находится на сервере MS SQL. пример хранимой процедуры также был бы хорош. 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