У меня есть следующая таблица SEASONS с указанием периодов времени, определяющих цены бронирования за каждый период дня;SELECT общая сумма доставки
ID, STARTDATE, ENDDATE, PRICE
6, 2012-06-01, 2012-06-30, 20
7, 2012-07-01, 2012-07-31, 35
8, 2012-08-01, 2012-08-31, 30
9, 2012-09-01, 2012-09-30, 25
Эта таблица определяет периоды цен (даты начала и окончания ценовой период с ценой заказа за каждый день в этом определенный период цен). Вопрос заключается в том, как создать запрос, который вернет общую стоимость бронирования на все дни в определенный период бронирования? Например, как рассчитать (SELECT?) Общую стоимость бронирования (SUM) за период с 2012-06-10 по 2012-08-20?
(Разумеется, его можно легко вычислить вручную = 21 (дней в июне) x20 + 31 (дней в июле) x35 + 20 (дней в августе) x30 = 2105) Как выглядит инструкция SELECT, возвращающая эту общую стоимость бронирования как?
большой ответ 'SET @ START = '2012-06-10'; SET @ END = '2012-08-20'; SELECT SUM ( (DATEIFF ( ) IF (ГОД (конец) = ГОД (@END) И МЕСЯЦ (enddate) = MONTH (@END), @END, enddate), IF (YEAR (startdate) = YEAR (@ START) И МЕСЯЦ (начальная дата) = MONTH (@START), @START, startdate) ) +1) * цена ) AS TOTAL_SUM ОТ сезонов WHERE startdate <= @END AND enddate> = @ START ' – sbrbot