|
Исключить пересекающиеся интервалы в запросе
| ☑ |
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.ДатаКонца
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший