Пересечение интервалов времени в запросе - выбрать разные интервалы #795162


#0 by PCcomCat
Доброго времени, уважаемые! Туплю. Подскажите, как следующее сделать? Запрос: ВЫБРАТЬ     СменыПериодыСмены.Ссылка КАК Смена,     Справочник.Смены.ПериодыСмены КАК СменыПериодыСмены             И (ТаблицаИнтервалов.ВремяНачалаИнтервала МЕЖДУ ТаблицаИнтервалов1.ВремяНачалаИнтервала И ТаблицаИнтервалов1.ВремяОкончанияИнтервала                 ИЛИ ТаблицаИнтервалов.ВремяОкончанияИнтервала МЕЖДУ ТаблицаИнтервалов1.ВремяНачалаИнтервала И ТаблицаИнтервалов1.ВремяОкончанияИнтервала) В результате получаю две строки: Смена 1 пересекается со сменой 2 Смена 2 пересекается со сменой 1 Нужно свернуть в одну. Как?
#1 by PCcomCat
Подниму тему. Я реализовала через группировку по интервалу пересечения. (Запрос немного другой.) Но ... мне не нравится немного, т.к. есть опасения, что могут совпасть пересечения интервалов для нескольких смен. Может, делал кто подобное? Поделитесь опытом.
#2 by Лодырь
Слушай, ну заменить еще одним запросом  пары 1-2 и 2-1 на 1-2, 1-2 и выбрать уникальные - думаю несложно Главное чтобы придумать порядок среди смен.
#3 by PCcomCat
Не уловлю... Можно подробнее?
#4 by PCcomCat
+Вернее, я понимаю, что как-то так. Но, блин, не сведу мысли в кучу...
#5 by PCcomCat
Вот так получила нужный результат, но мне не нравится текст:     Справочник.Смены.ПериодыСмены КАК СменыПериодыСмены             И (ТаблицаИнтервалов.ВремяНачалаИнтервала МЕЖДУ ТаблицаИнтервалов1.ВремяНачалаИнтервала И ТаблицаИнтервалов1.ВремяОкончанияИнтервала                 ИЛИ ТаблицаИнтервалов.ВремяОкончанияИнтервала МЕЖДУ ТаблицаИнтервалов1.ВремяНачалаИнтервала И ТаблицаИнтервалов1.ВремяОкончанияИнтервала) ;     ТаблицаПересечений.ВремяНачалаИнтервалаПересечения,     ТаблицаПересечений.ВремяОкончанияИнтервалаПересечения ИЗ
#6 by PCcomCat
Как вставлять текст в форуме, чтобы он весь сворачивался в группировку?
#7 by Naf2017
но могут же и 3 и 4 смены "смыкаться" в один интервал?
#8 by PCcomCat
Нужно исключить наложение.
#9 by Naf2017
например, на числах: (1,5) (2,7) (3,8) (4,10) должно превратиться в (1,10) так?
#10 by PCcomCat
В качестве эксперимента использую интервалы, чтобы впоймать пересечения:
#11 by PCcomCat
Пересечения Смены1 и Смены 2 в интервале: 08:00 - 10:00                                           16:00 - 18:00
#12 by Вафель
нужно просто найти пересечения и все?
#13 by Лодырь
Что должно быть на выходе в твоем тестовом примере?
#14 by Вафель
Начало1 < Окончание2 И Начало2 < Окончание1
#15 by Naf2017
смен всего две?
#16 by PCcomCat
Я не могу спрогнозировать, сколько их будет. Может две а может и три. А могут переназначить, а там кривые интервалы. Нужно предупредить ситуации.
#17 by PCcomCat
))) Получаю туже фигню: Смена 2 интервал 5 - Смена 1 интервал 1 - пересечение 08:00 - 10:00 Смена 1 интервал 1 - Смена 2 интервал 5 - пересечение 08:00 - 10:00 Смена 2 интервал 1 - Смена 1 интервал 4 - пересечение 16:00 - 18:00 Смена 1 интервал 4 - Смена 2 интервал 1 - пересечение 16:00 - 18:00
#18 by PCcomCat
Программно, конечно, выберу уникальные. Но хотелось запросом получить...
#19 by Naf2017
1. запрос в поместить в временную таблицу 2. далее ее же и вывести, но ВЫБРАТЬ РАЗЛИЧНЫЕ и ВЫБОР КОГДА Смена.Наименование>СменаПересечения.Наименование ТОГДА СменаПересечения ИНАЧЕ Смена КОНЕЦ КАК Смена и ВЫБОР КОГДА Смена.Наименование>СменаПересечения.Наименование ТОГДА Смена ИНАЧЕ СменаПересечения КОНЕЦ КАК СменаПересечения
#20 by PCcomCat
Не то что-то написал.
#21 by PCcomCat
Ладно, обработаю программно. Спасибо всем!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С