|
Полное соединение не работает. | ☑ | ||
---|---|---|---|---|
0
Lama12
22.08.13
✎
15:40
|
Может кому интересно будет.
Делаю отчет по сверке регл и упр кадрового учета. Почему-т оне работает полное соединение. Не могу понять почему :( Запрос не маленький. Может кому пригодится. УПП.
|
|||
1
zbv
22.08.13
✎
15:42
|
вот тут собака зарыта:
ГДЕ Работники.Активность И Работники.Период МЕЖДУ &ДатаНач И &ДатаКон И Работники.ФизЛицо = &ФизЛицо |
|||
2
Rie
22.08.13
✎
15:42
|
(0) А может, оно работает - только выдаёт местами NULL, из-за которого условия в ГДЕ не выполняются?
|
|||
3
Lama12
22.08.13
✎
15:43
|
(2) Нет. Просто часть записей из обоих связываемых таблиц пропадают. :(
|
|||
4
Lama12
22.08.13
✎
15:44
|
Например при увольнении из Упр учета в ГрафикРаботы пишется пустая ссылка. Так вот эта собака, не хочет запись с пустой ссылкой связывать и вообще ее не выводит.
|
|||
5
Lama12
22.08.13
✎
15:45
|
(1) А почему тут?
Вроде разъименования дополнительного не ввожу. Условия только на одну таблицу. |
|||
6
zbv
22.08.13
✎
15:47
|
а так:
И (ВложенныйЗапрос.ГрафикРаботыРУ = Работники.ГрафикРаботы или Работники.ГрафикРаботы = Значение(пустая ссылка)) |
|||
7
Lama12
22.08.13
✎
15:48
|
(6) Так работает, только я не понимаю почему :)
|
|||
8
zbv
22.08.13
✎
15:49
|
(5) ну у тебя сначала идет полное соединение, а потом на результат соединения накладывается условие. И если в результате полного соединения полчилось NULL, то условие отработает как ЛОЖЬ.
Следовательно никаким полным соединением и не пахнет. ЛЕВОЕ, точнее ПРАВОЕ тут поуместнее будет. |
|||
9
Lama12
22.08.13
✎
15:49
|
(7) + Связь то полная.
|
|||
10
Lama12
22.08.13
✎
15:50
|
(8) Понял :)
НЕ сразу врубился что Активность дает косвенное ограничение и все остальные условия :) |
|||
11
zbv
22.08.13
✎
15:50
|
(7) ну дык соединение выполнено, если условие соединения равно ИСТИНА.
|
|||
12
Lama12
22.08.13
✎
15:51
|
Спасибо!
Блин... надо больше практиковаться. А то все бумажки перекладываю :( |
|||
13
m-serg74
22.08.13
✎
15:51
|
(2) Вам грех должно быть такое говорить
|
|||
14
Lama12
22.08.13
✎
15:56
|
Если вдруг интересно кому.
Решение.
|
|||
15
Lama12
22.08.13
✎
15:57
|
Но честно говоря стыдно :(
|
|||
16
viktor_vv
22.08.13
✎
16:03
|
(14) А не проще ли было эти условия засунуть в условие соединения ПО ?
ПО ВложенныйЗапрос.СотрудникФизлицо = Работники.ФизЛицо И ВложенныйЗапрос.ПодразделениеСоответствия = Работники.Подразделение и т. д. |
|||
17
viktor_vv
22.08.13
✎
16:05
|
Хотя так сразу не пойму, то же самое это будет или нет
ПО ВложенныйЗапрос.СотрудникФизлицо = Работники.ФизЛицо И ВложенныйЗапрос.ПодразделениеСоответствия = Работники.Подразделение И Работники.Активность И Работники.Период МЕЖДУ &ДатаНач И &ДатаКон И Работники.ФизЛицо = &ФизЛицо |
|||
18
zbv
22.08.13
✎
16:09
|
(17) будет тоже самое, что и в (14).
|
|||
19
Lama12
22.08.13
✎
16:11
|
(16) Одинаково будет :)
Это я ошибку искал, вот и вынес в подзапрос. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |