Имя: Пароль:
1C
 
Вопрос по соединению таблиц в запросе
,
0 mzelensky
 
10.12.14
08:27
Доброго всем. Скорее всего тема уже обсуждалась, так что если у кого получится найти ссылки - буду благодарен.

Суть в следующем - имеем примерно вот такие таблички в запросе. В первой выбирается иерархический справочник (с нужными отборами разумеется) из которого нас интересует поле "ПолеСоединения". Во втрой таблице выбирается другой справочник в реквизит "Спр2.Поле" это ссылка на "Справочник1":

Таблица1:

Спр1.Ссылка
Спр1.Родитель как ПолеСоединения

Из Справочник1 как Спр1


Таблица2:

Спр2.Ссылка
Спр2.Поле как ПолеСоединения

Из Справочник2 как Спр2

Мне нужно реализовать вот такое соединение:

Справочник1 как Спр1
Внутреннее соединение Справочник2
По Спр2.Поле В Иерархии(Спр1.Ссылка)

Разумеется такую связь я не могу построить. Вопрос - как быть? В результате мне нужна таблица вида:

Спр1.Родитель как ПолеСоединения
Спр2.Ссылка
Спр2.Поле как ПолеСоединения
1 mzelensky
 
10.12.14
08:28
(0) + Отчет делаю на СКД. Может там как-то намутить можно через несколько наборов?
2 olegves
 
10.12.14
09:12
(0) яснее изложи, ничего не понял
3 mzelensky
 
10.12.14
09:15
(2) Как вот такое реализовать:

Справочник1 как Спр1
Внутреннее соединение Справочник2
По Спр2.Поле В Иерархии(Спр1.Ссылка)
4 olegves
 
10.12.14
09:18
(3) Спр2.Поле = isnull(СпрР6.Ссылка, isnull(СпрР5.Ссылка...Спр1.Ссылка)))))
СпрРn - цепочка родительских групп Спр1
5 mzelensky
 
10.12.14
09:26
(4) Не канает
6 olegves
 
10.12.14
09:29
(5) что, не канает? кривизна рук мешает?
7 hhhh
 
10.12.14
09:33
По Спр2.Поле = Спр1.Ссылка
или  Спр2.родитель = Спр1.Ссылка
или  Спр2.родитель.родитель = Спр1.Ссылкаили  Спр2.родитель = Спр1.Ссылка
или  Спр2.родитель.родитель.родитель = Спр1.Ссылка
или  Спр2.родитель.родитель.родитель.родитель = Спр1.Ссылка
или  Спр2.родитель.родитель.родитель.родитель.родитель = Спр1.Ссылка
или Спр2.родитель.родитель.родитель.родитель.родитель.родитель = Спр1.Ссылка
или  Спр2.родитель.родитель.родитель.родитель.родитель.родитель.родитель = Спр1.Ссылка
или  Спр2.родитель.родитель.родитель.родитель.родитель.родитель.родитель.родитель = Спр1.Ссылка
или  Спр2.родитель.родитель.родитель.родитель.родитель.родитель.родитель.родитель.родитель = Спр1.Ссылка
или  Спр2.родитель = Спр1.Ссылкаили  Спр2.родитель = Спр1.Ссылка
8 mzelensky
 
10.12.14
09:34
(6) Кривизна твоего решения.

(7) Во-во. Об этом я и говорю.
9 mzelensky
 
10.12.14
09:34
Нормальное решение есть?
10 pessok
 
10.12.14
09:37
если надо внутреннее соединение, то сделай во втором запросе в блоке где
ГДЕ Спр1.Номенклатура.Родитель В (ВЫБРАТЬ Спр2.Номенклатура ИЗ Спр2)
11 olegves
 
10.12.14
09:37
(8) открой для себя левое соединение таблицы на себя по Ссылка = Родитель, тогда не придется делать муйню, как (7)
12 mzelensky
 
10.12.14
09:45
(10) Вопрос не в условии ГДЕ. Вопрос в стыковке таблиц
13 mzelensky
 
10.12.14
09:46
(11) Причем здесь " левое соединение таблицы на себя по Ссылка = Родитель" ???

Либо я тебя не понимаю, либо ты меня. Давай подробней
14 olegves
 
10.12.14
09:51
(13) ЛЕвое соединение Справочник1 КАК СпрР1
По СпрР1.Родитель = Спр1.Ссылка
ЛЕвое соединение Справочник1 КАК СпрР2
По СпрР2.Родитель = СпрР1.Ссылка
и т.п.
15 mzelensky
 
10.12.14
09:56
(14) О да, это на много лучше (7)

Абсолютно аналогичная муйня
16 olegves
 
10.12.14
09:58
(15) тогда сиди у разбитого корыта и продолжаю хрюкать
17 mzelensky
 
10.12.14
10:42
(16) Ты бы лучше чего хорошего посоветовал