////////////////////////// параметры даты в запрос ///////////////////////// ///////////// приведем период в нормальную форму к виду (с лДата по пДата) /////////// ВЫБРАТЬ МИНИМУМ(пДаты._Дата) КАК лДата, МАКСИМУМ(пДаты._Дата) КАК пДата ПОМЕСТИТЬ _д ИЗ (ВЫБРАТЬ НАЧАЛОПЕРИОДА(&лДата,ДЕНЬ) AS _Дата ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(&пДата,ДЕНЬ)) КАК пДаты; ////////////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ _д.лДата, _д.пДата, ВЫБОР КОГДА ГОД(_д.пДата) >= ГОД(_д.лДата) ТОГДА ВЫБОР КОГДА МЕСЯЦ(_д.пДата) >= МЕСЯЦ(_д.лДата) ТОГДА ГОД(_д.пДата) - ГОД(_д.лДата) КОГДА МЕСЯЦ(_д.пДата) < МЕСЯЦ(_д.лДата) ТОГДА ГОД(_д.пДата) - ГОД(_д.лДата) - 1 КОНЕЦ КОНЕЦ КАК Лет, ВЫБОР КОГДА ГОД(_д.пДата) >= ГОД(_д.лДата) ТОГДА ВЫБОР КОГДА МЕСЯЦ(_д.пДата) >= МЕСЯЦ(_д.лДата) ТОГДА ВЫБОР КОГДА ДЕНЬ(_д.пДата) >= ДЕНЬ(_д.лДата) ТОГДА МЕСЯЦ(_д.пДата) - МЕСЯЦ(_д.лДата) КОГДА ДЕНЬ(_д.пДата) < ДЕНЬ(_д.лДата) ТОГДА МЕСЯЦ(_д.пДата) - МЕСЯЦ(_д.лДата) - 1 КОНЕЦ КОГДА МЕСЯЦ(_д.пДата) < МЕСЯЦ(_д.лДата) ТОГДА ВЫБОР КОГДА ДЕНЬ(_д.пДата) >= ДЕНЬ(_д.лДата) ТОГДА 12 + МЕСЯЦ(_д.пДата) - МЕСЯЦ(_д.лДата) КОГДА ДЕНЬ(_д.пДата) < ДЕНЬ(_д.лДата) ТОГДА 12 + МЕСЯЦ(_д.пДата) - МЕСЯЦ(_д.лДата) - 1 КОНЕЦ КОНЕЦ КОНЕЦ КАК Месяцев, ВЫБОР КОГДА ГОД(_д.пДата) >= ГОД(_д.лДата) ТОГДА ВЫБОР КОГДА МЕСЯЦ(_д.пДата) >= МЕСЯЦ(_д.лДата) ТОГДА ВЫБОР КОГДА ДЕНЬ(_д.пДата) >= ДЕНЬ(_д.лДата) ТОГДА ДЕНЬ(_д.пДата) - ДЕНЬ(_д.лДата) КОГДА ДЕНЬ(_д.пДата) < ДЕНЬ(_д.лДата) ТОГДА (ДЕНЬ(КОНЕЦПЕРИОДА(_д.лДата,МЕСЯЦ)) - ДЕНЬ(_д.лДата)) + ДЕНЬ(_д.пДата) КОНЕЦ КОГДА МЕСЯЦ(_д.пДата) < МЕСЯЦ(_д.лДата) ТОГДА ВЫБОР КОГДА ДЕНЬ(_д.пДата) >= ДЕНЬ(_д.лДата) ТОГДА ДЕНЬ(_д.пДата) - ДЕНЬ(_д.лДата) КОГДА ДЕНЬ(_д.пДата) < ДЕНЬ(_д.лДата) ТОГДА (ДЕНЬ(КОНЕЦПЕРИОДА(_д.лДата,МЕСЯЦ)) - ДЕНЬ(_д.лДата)) + ДЕНЬ(_д.пДата) + 1 КОНЕЦ КОНЕЦ КОНЕЦ КАК Дней