Имя: Пароль:
1C
1С v8
Исключить пересекающиеся интервалы в запросе
,
0 Amfiaray
 
15.09.16
13:37
Добрый день.
Как в запросе при соединении 2 таблиц исключить пересекающиеся интервалы дат? Например если есть таблицы:
1. Колонка1   НачалоПериода КонецПериода
   Значение1   01.08.2016    31.08.2016

2. Колонка1   НачалоПериода КонецПериода
   Значение1   10.08.2016    20.08.2016
то необходимо получить

3. Колонка1   НачалоПериода КонецПериода
   Значение1   01.08.2016    10.08.2016
   Значение1   20.08.2016    31.08.2016
1 Ёпрст
 
15.09.16
13:41
(0) как это ?

а с 10.08 по 20.08 куда период посчез ?
он же был вот тут:
01.08.2016    31.08.2016
2 Ёпрст
 
15.09.16
13:41
Еще подумай, что тебе надо в итоге.
3 Amfiaray
 
15.09.16
13:44
(3) Мне нужны периоды из первой таблицы которые не попадают в период из 2 таблицы
4 Одинесю
 
15.09.16
13:53
А интервал в пределах месяца? Тогда в массивы и что-то типа Сопоставить (сравнить) массивы
5 Ёпрст
 
15.09.16
13:54
(3) ну в, t-sql это можно слепить обычным запросом с EXCEPT
6 Amfiaray
 
15.09.16
13:58
(4) Нет, интервал может быть произвольным.
(5) А в 1с запросом никак?
7 Ёпрст
 
15.09.16
13:58
(6) тоже как.
8 Amfiaray
 
15.09.16
14:00
(7) А пример можно?
9 1sanekmaloi1
 
15.09.16
14:05
А если в таблице 2 будет например 10.08.2016 - 02.09.2016 что делать?
10 Amfiaray
 
15.09.16
14:06
(9) Тогда в результате будет 01.08.2016-10.08.2016
11 youalex
 
15.09.16
14:13
(3) типа
ИЗ Таб1 СОЕДИНЕНИЕ Таб2
ПО НЕ Таб1.ДатаНачала  МЕЖДУ Таб2.ДатаНачала И Таб2.ДатаКонца
И Таб1.ДатаКонца МЕЖДУ Таб2.ДатаНачала И Таб2.ДатаКонца

?
12 youalex
 
15.09.16
14:14
(11) * второе условие тоже НЕ
13 Amfiaray
 
15.09.16
14:35
(11) Не работает
14 youalex
 
15.09.16
15:39
Таб1.ДатаКонца <= Таб2.ДатаНачала
ИЛИ Таб1.ДатаНачала >= Таб2.ДатаКонца
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший