#0
by qwasqu
Здравствуйте. Есть таблица, например: 01.01.16 - 10.03.16 В результате они должны схлопнуться в: Вообще таблица может быть какой угодно. Я не нашел способа в запросе схлопнуть ее. Подскажите, если кто сталкивался. Спасибо.
#1
by Злопчинский
задача определения пересечения периодов подробно рассмотрена на ИС у Ильдаровича - посмотри там, может найдешь полезное
#2
by qwasqu
К сожалению у него не то, там он выбирает периоды, которые содержат дату. ГДЕ &МоментВремени МЕЖДУ НачалоИнтервала И КонецИнтервала оптимизирует данный запрос.
#7
by newbling
Если не учитывать, то достаточно ПериодОкончанияДействия >= &Периодначала И ПериодНачала <= &ПериодОкончанияДействия
#13
by Ildarovich
В статье есть задача 25, а в статье - задача 14, которые ИМЕЮТ ОТНОШЕНИЕ к рассматриваемому вопросу. Проблема задачи в том, что периоды могут пересекаться, а 14 и 25 на это не рассчитаны. Поэтому я бы сделал так: сначала соединением с таблицей дат периода (получить ее можно многими способами, хоть из календаря) нашел все даты без повторений, а затем применил бы решение из 14.
#14
by newbling
по быстродействию быстрее выгрузить, отработать ручками в цикле, а потом опять грузануть. И логически проще.
#16
by azernot
ДатаОкончанияСМинимальнойДатойНачала.ДатаОкончания ИЗ ГДЕ ДатаОкончанияСМинимальнойДатойНачала1.ДатаНачала ЕСТЬ NULL УПОРЯДОЧИТЬ ПО ДатаОкончанияСМинимальнойДатойНачала.ДатаНачала Я вроде бы дыр не нашёл
#23
by Ildarovich
+ Ограничение 256 дат легко преодолеть, нарастив искусственную таблицу чисел. Если же вообще без нее, то вот вариант с использованием нарастающего итога: На четыре строчки длиннее, чем , нужно подсократить. Но зато показывает, что задачу можно решить за линейное время, если использовать идеи из .
#24
by Ildarovich
+ Вот самый короткий на текущий момент вариант. На 12 строчек короче, чем . Крайние точки выделяются условием несоединяемости не с каким интервалом, затем, в последнем запросе, они "спариваются":
#26
by Лефмихалыч
, снимаю шляпу, замерев в глубоком пардоне. Я серьезно - мне нравятся эти штуки-дрюки с запросами, которые ты делаешь. Это офигенно! :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как в запросе собрать последовательность дней пересекающихся периодов
- СКД: Пересечение 2 наборов данных в СКД.
- УПП 32 Не контролирует пересечение периодов сдельного вида расчета
- пересечение массивов - алгоритм
- Контролировать пересечение периодов начислений, регистрирующих норму времени!
- v7: Несколько периодов в запросе
- v8: Объединение периодов в запросе
- 1С: ЗУП 2.5 Пересечение временного исполнения обязанностей и индексации
- Пересечение интервалов времени в запросе - выбрать разные интервалы
- Пересечение периодов
В этой группе 1С
- ПолучитьМакетОформления для тонкого клиента
- В 1С Бухгалтерия 3.0 отражение зарплаты не видны документы
- не сходятся начальные остатки в ОСВ и ОСВ по счету
- Подключение ФР Атол 25Ф к УТ11 или Рознице 2
- Управление холдингом. Загрузка данных из Бух 3.0
- V8: Розница 2.2 автоматический пко после закрытия смены
- Роль содержит недоступное право
- Медленная работа с хранилищем
- Вызвать службу windows в 1с 8
- 1С Отчетность ответы на тест
- Отчет СКД и программно сформировать
- HTTP-сервис
- в ЗУП убрать разделение окна
- УТ11 сверка взаиморасчетов - зачем нужен документ?
- В ЗУП 3.1 после переноса не проводятся отпуска
- РИБ Розница теряются движения по регистрам
- Как сформировать проводки у документа Требование-накладная
- 8.3 Отладка веб-клиента
- Вывести в Форму списка Расходной накладной содержание табличной части документа
- 1С 8.3 Отчет без СКД