Автор: ildarovich
ВЫБРАТЬ
0 КАК Х
ПОМЕСТИТЬ Бит
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1
;
ВЫБРАТЬ
Б0.Х + 2 * (Б1.Х + 2 * (Б2.Х + 2 * (Б3.Х + 2 * (Б4.Х + 2 * Б5.Х)))) КАК Х
ПОМЕСТИТЬ Периоды
ИЗ
Бит КАК Б0,
Бит КАК Б1,
Бит КАК Б2,
Бит КАК Б3,
Бит КАК Б4,
Бит КАК Б5
ГДЕ
Б0.Х + 2 * (Б1.Х + 2 * (Б2.Х + 2 * (Б3.Х + 2 * (Б4.Х + 2 * Б5.Х)))) < РАЗНОСТЬДАТ(&Дата1, &Дата2, МЕСЯЦ)
;
ВЫБРАТЬ
ЕСТЬNULL(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата1, МЕСЯЦ, Начала.Х + 1), МЕСЯЦ), &Дата1) КАК ДатаНачала,
ЕСТЬNULL(КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата1, МЕСЯЦ, Окончания.Х), МЕСЯЦ), &Дата2) КАК ДатаОкончания
ИЗ
Периоды КАК Начала
ПОЛНОЕ СОЕДИНЕНИЕ Периоды КАК Окончания
ПО (Начала.Х + 1 = Окончания.Х)
{} Ожидается идентификатор
Нахождение интервалов в запросе
Инвертирование периодов в запросе
Объединение непересекающихся интервалов в запросе
Определение суммарного покрытия перекрывающихся интервалов
Получить даты за период в запросе
ПодключитьТестовыйПериод (БСП)
ПодключениеТестовыхПериодов_ПроверитьСостояниеЗапроса (БСП)
#1, 10 ноября 2022 08:17
Спасибо тебе, добрый человек