|
Выбрать периоды не участвующие во вхождениях | ☑ | ||
---|---|---|---|---|
0
FreeWay
11.07.19
✎
18:40
|
Кто нибудь сталкивался с похожей задачей?
Дан период месяцев к примеру с начала тысячелетия по текущий период. в этот период входят другие периоды (с начала мая 2005 по конец ноября 2012, следующий с начала августа 2014 по конец февраля 2016) их количество разное и длительность разная. Стоит задача выбрать периоды месяцев не участвующие во вхождениях. То бишь в нашем случае это будут: с начала января 2000 по конец апреля 2005, с начала декабря 2012 по конец июля 2014, с начачла марта 2016 по конец июля 2019 |
|||
1
FreeWay
11.07.19
✎
18:47
|
не через запросы, а массивы, таблицы значений и т.д.
т.б результат должен быть таким начало периода конец периода 1-ый период 2-ой период 3-ий период и т.д. |
|||
2
FreeWay
12.07.19
✎
00:18
|
//ТЗ - таблица периодов
//НД - начало периода //КД Окончание периода функция ЕжемесячныеПериоды(ТЗ,НД,КД) ТЗрез=Новый ТаблицаЗначений; ТЗрез.Колонки.Добавить("Начало"); ТЗрез.Колонки.Добавить("Конец"); Для каждого стр из ТЗ цикл Если НД<Стр.НачалоПериода тогда Строка = ТЗрез.Добавить(); Строка.Начало = Нд; Строка.Конец = КонецМесяца(ДобавитьМесяц(Стр.НачалоПериода,-1)); Нд=КонецМесяца(стр.КонецПериода)+1; ИначеЕсли НД<Стр.КонецПериода Тогда Нд=НачалоМесяца(ДобавитьМесяц(стр.КонецПериода,1)); КонецЕсли; КонПер=Стр.КонецПериода; КонецЦикла; Если КонПер<КД Тогда Строка = ТЗрез.Добавить(); Строка.Начало = НачалоМесяца(ДобавитьМесяц(КонПер,1)); Строка.Конец =КонецМесяца(КД); КонецЕсли; Возврат ТЗрез КонецФункции |
|||
3
zva
12.07.19
✎
05:23
|
А чем запрос не угодил?
http://catalog.mista.ru/public/788007/#66. Инвертирование периодов в запросе |
|||
4
fisher
12.07.19
✎
09:24
|
(3) Если все данные уже в памяти и для остального запросы не требуются, то делать это отдельным запросом - оверкил. Задача простая и рассчитывается быстро даже на клиенте.
|
|||
5
FreeWay
12.07.19
✎
20:15
|
как смог, так и сделал. помогающих очень много было, потому и выбрал свой вариант ;)
|
|||
6
Garykom
гуру
12.07.19
✎
20:26
|
Что у тебя будет если исходные периоды пересекаются по всякому?
|
|||
7
FreeWay
12.07.19
✎
22:17
|
(6) а не адекватный вариант с пересечение периодов здесь не рассматривается и что за не адекват такое может сотварить? условие как бы ни кто не отменял...
|
|||
8
FreeWay
12.07.19
✎
22:18
|
(6) что курим?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |