У меня есть простая таблица с именем HotelRate
HID | START_DATE | END_DATE | PRICE_PER_DAY
--------------------------------------
1 01/1/2015 10/1/2015 100
1 11/1/2015 20/1/2015 75
1 21/1/2015 30/1/2015 110
какой самый простой способ рассчитать цену для гостиничного номера, если пользователь запрашивает общую цену между 5/1/2015
до 25/1/2015
.
Я проверил:
но ничто из этого не имеет для меня никакого смысла.
Я попробовал пару запросов, но похоже, что стрелка вслепую стреляет. Может ли кто-нибудь предложить мне простой и элегантный способ сделать это?
@JamesZ
При запуске первого запроса я получаю
start_date end_date duration price_per_day
---------- ---------- ----------- -------------
2015-01-01 2015-01-10 5 100
2015-01-11 2015-01-20 9 75
2015-01-21 2015-01-30 4 110
Для первого диапазона 5
ОК, второй диапазон должен быть 10
, третий be 5
Как рассчитываются дни: общее количество ночей между датами start
и end
, что совпадает с разницей дней
05-Jan-15 06-Jan-15 1 Night
06-Jan-15 07-Jan-15 1 Night
07-Jan-15 08-Jan-15 1 Night
08-Jan-15 09-Jan-15 1 Night
09-Jan-15 10-Jan-15 1 Night
10-Jan-15 11-Jan-15 1 Night
11-Jan-15 12-Jan-15 1 Night
12-Jan-15 13-Jan-15 1 Night
13-Jan-15 14-Jan-15 1 Night
14-Jan-15 15-Jan-15 1 Night
15-Jan-15 16-Jan-15 1 Night
16-Jan-15 17-Jan-15 1 Night
17-Jan-15 18-Jan-15 1 Night
18-Jan-15 19-Jan-15 1 Night
19-Jan-15 20-Jan-15 1 Night
20-Jan-15 21-Jan-15 1 Night
21-Jan-15 22-Jan-15 1 Night
22-Jan-15 23-Jan-15 1 Night
23-Jan-15 24-Jan-15 1 Night
24-Jan-15 25-Jan-15 1 Night
Count : 20 Night