Даты свернуть в периоды с шагом один день
По теме из базы знаний
Найденные решения
Если правильно понял, можно примерно так:
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 1) КАК Дата
ПОМЕСТИТЬ ВТ_ИсходныеДаты
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 2)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 7)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 8)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 13)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 14)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 15)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 16)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_ИсходныеДаты.Дата КАК Дата,
АВТОНОМЕРЗАПИСИ() КАК НомерПП
ПОМЕСТИТЬ ВТ_ИсходныеДатыСАвтонумерацией
ИЗ
ВТ_ИсходныеДаты КАК ВТ_ИсходныеДаты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МИНИМУМ(ДатыНачала.Дата) КАК ДатаНачала,
ДатыНачала.НомерПП КАК НомерПП,
МАКСИМУМ(ДатыОкончания.Дата) КАК ДатаОкончания
ПОМЕСТИТЬ ВТ_ДатыОкончания
ИЗ
ВТ_ИсходныеДатыСАвтонумерацией КАК ДатыНачала
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсходныеДатыСАвтонумерацией КАК ДатыОкончания
ПО ДатыНачала.Дата < ДатыОкончания.Дата
ГДЕ
РАЗНОСТЬДАТ(ДатыНачала.Дата, ДатыОкончания.Дата, ДЕНЬ) = ДатыОкончания.НомерПП - ДатыНачала.НомерПП
СГРУППИРОВАТЬ ПО
ДатыНачала.НомерПП
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МИНИМУМ(ВТ_ДатыОкончания.ДатаНачала) КАК ДатаНачала,
ВТ_ДатыОкончания.ДатаОкончания КАК ДатаОкончания
ИЗ
ВТ_ДатыОкончания КАК ВТ_ДатыОкончания
СГРУППИРОВАТЬ ПО
ВТ_ДатыОкончания.ДатаОкончания
УПОРЯДОЧИТЬ ПО
ДатаНачала
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
Даты.Дата,
АВТОНОМЕРЗАПИСИ КАК НомерЗаписи
ИЗ
Даты
ПОМЕСТИТЬ ДатыСНомеромЗаписи;
ВЫБРАТЬ
ДатыСНомеромЗаписи.Дата,
НомерЗаписи/2 - ВЫРАЗИТЬ(НомерЗаписи/2 КАК ЧИСЛО(6,0)) КАК Модуль2
ИЗ
ДатыСНомеромЗаписи
ПОМЕСТИТЬ ДатыСЧетностью;
ВЫБРАТЬ
ДатыСЧетностью.Даты,
АВТОНОМЕРЗАПИСИ Как Индекс
ИЗ
ДатыСЧетностью
ГДЕ
ДатыСЧетностью.Модуль2 <> 0
ПОМЕСТИТЬ
ДатыНачала;
ВЫБРАТЬ
ДатыСЧетностью.Даты,
АВТОНОМЕРЗАПИСИ Как Индекс
ГДЕ
ДатыСЧетностью.Модуль2 = 0
ПОМЕСТИТЬ
ДатыОкончания;
ВЫБРАТЬ
ДатыНачала.Дата КАК ДатаНачала,
ДатыОкончания.Дата КАК ДатаОкончания
ИЗ ДатыНачала
ЛЕВОЕ СОЕДИНЕНИЕ ДатыОкончания ПО ДатыНачала.Индекс = ДатыОкончания.Индекс
Показать
Если правильно понял, можно примерно так:
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 1) КАК Дата
ПОМЕСТИТЬ ВТ_ИсходныеДаты
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 2)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 7)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 8)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 13)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 14)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 15)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДАТАВРЕМЯ(2020, 7, 16)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_ИсходныеДаты.Дата КАК Дата,
АВТОНОМЕРЗАПИСИ() КАК НомерПП
ПОМЕСТИТЬ ВТ_ИсходныеДатыСАвтонумерацией
ИЗ
ВТ_ИсходныеДаты КАК ВТ_ИсходныеДаты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МИНИМУМ(ДатыНачала.Дата) КАК ДатаНачала,
ДатыНачала.НомерПП КАК НомерПП,
МАКСИМУМ(ДатыОкончания.Дата) КАК ДатаОкончания
ПОМЕСТИТЬ ВТ_ДатыОкончания
ИЗ
ВТ_ИсходныеДатыСАвтонумерацией КАК ДатыНачала
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсходныеДатыСАвтонумерацией КАК ДатыОкончания
ПО ДатыНачала.Дата < ДатыОкончания.Дата
ГДЕ
РАЗНОСТЬДАТ(ДатыНачала.Дата, ДатыОкончания.Дата, ДЕНЬ) = ДатыОкончания.НомерПП - ДатыНачала.НомерПП
СГРУППИРОВАТЬ ПО
ДатыНачала.НомерПП
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МИНИМУМ(ВТ_ДатыОкончания.ДатаНачала) КАК ДатаНачала,
ВТ_ДатыОкончания.ДатаОкончания КАК ДатаОкончания
ИЗ
ВТ_ДатыОкончания КАК ВТ_ДатыОкончания
СГРУППИРОВАТЬ ПО
ВТ_ДатыОкончания.ДатаОкончания
УПОРЯДОЧИТЬ ПО
ДатаНачала
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот