|
Связь в запросе более 2-ух таблиц | ☑ | ||
---|---|---|---|---|
0
lirt82
23.01.17
✎
17:20
|
Всем привет, объясните схему связи в запросе нескольких таблиц (более двух). Для примера есть 4 регистра A, B, C, D у всех общее измерение Номенклатура. Нам нужно получить остаток по каждому из 4, при чем регистр А - главный (на него накладываем параметр Дата и Склад) т.е. как правильно связать А и В, А и С, А и D. Если выбираю в одном запросе все 4 таблицы и на закладке Связи соединяю по Номенклатуре то выходит ошибка если связал А и В, и потом пытаюсь связать А и С, выдается ошибка "Противоречивая связь #1", как правильно привязать к главному регистру А , остальные 3 (В,С,D)?
|
|||
1
Fragster
гуру
23.01.17
✎
17:24
|
||||
2
Джинн
23.01.17
✎
17:26
|
Если данные независимы, то только Объединить Все. Иначе левым/правым/внутренним соединением обрежете данные.
Но задача какая-то странная. |
|||
3
Ёпрст
23.01.17
✎
17:26
|
если остаток по каждому, то union all
|
|||
4
Живой Ископаемый
23.01.17
✎
17:29
|
подтверждаю, лучше объединить а потом сгруппировать по нужному измерению.
|
|||
5
Господин ПЖ
23.01.17
✎
17:30
|
только декарт, только хардкор
|
|||
6
runoff_runoff
23.01.17
✎
17:31
|
full join еще есть..
|
|||
7
lirt82
23.01.17
✎
17:33
|
(2) (4) понял, спасибо
|
|||
8
mkalimulin
23.01.17
✎
17:34
|
(0) С типовым конструктором запроса действительно тяжело работать. Соединяешь все три таблицы (B,C,D) с А. Как ты и написал.
На самом деле разработчики перемудрили. Таблицы связываются со всеми предыдущими. Зачем указывать связь таблицы с таблицей - загадка. В альтернативном конструкторе http://catalog.mista.ru/public/569569/ такого нет. Что конкретно у тебя не получается - можно, конечно, разобраться. Но проще всего или написать текст руками ИЗ А ЛЕВОЕ СОЕДИНЕНИЕ B ПО а.номенклатура=в.номенклатура ЛЕВОЕ СОЕДИНЕНИЕ С ПО а.номенклатура=с.номенклатура и т.д. или воспользоваться альтернативным конструктором. |
|||
9
Fragster
гуру
23.01.17
✎
17:43
|
(8) с типовым конструктором работать нормально, если есть понимание, что такое join, и как он работает
|
|||
10
mkalimulin
23.01.17
✎
17:51
|
(9) Я всего лишь заметил, что установка связей в типовом конструкторе кривая. А с пониманием можно и вообще без конструктора работать.
|
|||
11
aleks_default
23.01.17
✎
17:53
|
(9) кроме того который в тонком клиенте
|
|||
12
mkalimulin
23.01.17
✎
18:14
|
(9) И если уж быть точным. Как раз понимание того, как работает join и заставляет всякий раз спотыкаться на закладке связей в типовом запросе. Вот я соединяю три таблицы А,В и С. Я то знаю, что таблица C соединяется не с А и не с В, а с обоими таблицами сразу. Но конструктор требует от меня непонятного я должен указать с какой конкретно таблицей соединяется С. Зачем надо было так делать? Ради того, чтобы заменить слова левое, правое, полное на галочки справа-слева? По мне, так очень неудачное решение. В конструкторе JUG все гораздо логичнее и естественнее.
|
|||
13
HardBall
23.01.17
✎
18:59
|
(8) Брехня
|
|||
14
HardBall
23.01.17
✎
19:00
|
Не понятно где ТС откопал проблему.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |