|
Соединение ПО ... В ИЕРАРХИИ (...)
| ☑ |
0
bolobol
19.07.18
✎
09:20
|
Доброго дня!
ЗУП, такой ЗУП...
Требуется переписать ошибку:
...ИЗ
ПодрыСГруппами ВНУТРЕННЕЕ СОЕДИНЕНИЕ Штатки
ПО ИСТИНА
ГДЕ
Штатки.Подр В ИЕРАРХИИ (ВЫБРАТЬ Подр ИЗ ПодрыСГруппами)
- получается, что всевозможные штатки соединяются со всеми подразделениями, а отношения к ним не имеют.
Исправить как:
...ИЗ
ПодрыСГруппами ВНУТРЕННЕЕ СОЕДИНЕНИЕ Штатки
ПО ПодрыСГруппами.Подр В (Штатки.Подр, Штатки.Подр.Родитель, Штатки.Подр.Родитель.Родитель... и так 10, а то и 15 уровней)
Есть как-то... правильнее что ли?
|
|
1
FIXXXL
19.07.18
✎
09:27
|
(0) разбей на несколько запросов
первая ВТ1 Сотр - Подр
вторая ВТ Штатки.Подр В ИЕРАРХИИ (Выбрать ВТ1.Подр ИЗ ВТ1)
в третьем запросе соединяй
|
|
2
Eiffil123
19.07.18
✎
09:27
|
сделать отдельной виртуальной таблицей все подразделения в иерархии верхнего. В запросе уже анализировать ВТ. А чем плох первый запрос с соединением по В ИЕРАРХИИ?
|
|
3
butterbean
19.07.18
✎
09:28
|
имхо, нужно переписать запрос создающий ПодрыСГруппами чтобы там не было иерархии
|
|
4
Fragster
гуру
19.07.18
✎
09:32
|
правильнее сделать РС с хранением иерархии, например в nested sets, и использовать для соединения его
|
|
5
bolobol
19.07.18
✎
10:05
|
Типа так, может:
(ПодрыСГруппами.Подр, Штатки.Подр) В (
ВЫБРАТЬ ПодрыСГРуппами.Ссылка КАК Родитель, Подры.Ссылка КАК Подр ИЗ Справочник.ПодразделенияОрганизаций КАК ПодрыСГРуппами ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК Подры
ПО ПодрыСГРуппами.Ссылка = Подры.Родитель
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Подры.Ссылка, Подры.Ссылка ИЗ Справочник.ПодразделенияОрганизаций КАК Подры
)
|
|