AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2014, 20:49   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Использовать addLink дважды?

В вашем while select примере не вижу join для Table3? Если Table3 не джойнится, а вычисляется до запроса то это не link, а range.

Последний раз редактировалось S.Kuskov; 01.11.2014 в 21:01.
Старый 01.11.2014, 22:21   #2  
Music is offline
Music
Участник
 
33 / 10 (1) +
Регистрация: 01.07.2014
В while select join для Table3 есть, просто я его упустил в описании.
Вариант с двумя Link подряд пробовал, но не дает нужного эффекта к сожалению.
Старый 01.11.2014, 22:49   #3  
CHESER85 is offline
CHESER85
Участник
 
93 / 11 (1) +
Регистрация: 04.08.2011
Адрес: Ufa
Записей в блоге: 1
Может попробовать inner join? И еще попробуй addrange по расширенному синтаксису
Старый 02.11.2014, 01:25   #4  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Цитата:
Сообщение от Music Посмотреть сообщение
Вариант с двумя Link подряд пробовал
а они не должны быть "подряд" (если я правильно понял смысл этой фразы), так как относятся к разным datasource. Примерно так (пишу без проверки синтаксиса):
X++:
...
QueryBuildDataSource qbdsTable1, 
                                 qbdsTable2,
                                 qbdsTable3;

qbdsTable1 = query.addDataSource(tablenum(Table1));

qbdsTable2 = qbdsTable1.addDataSource(tablenum(Table2));
qbdsTable2.joinMode(JoinMode::OuterJoin);
qbdsTable2.addLink(fieldNum(Table1, id1), fieldNum(Table2, id1));

qbdsTable3 = qbdsTable1.addDataSource(tablenum(Table3));
qbdsTable3.joinMode(JoinMode::OuterJoin);
qbdsTable3.addLink(fieldNum(Table1, id2), fieldNum(Table3, id2));
Пример актуален для простого случая, когда в Table1 есть два внешних ключа id1 и id2, и требуется просто выбрать все записи из Table1 и привязать к ним расширенную информацию (при ее наличии) из таблиц Table2 и Table3. Но вполне возможно, что это совсем не то, чего вы хотите добиться, так как исходный запрос приведен не полностью. Из-за чего непонятно, для чего присутствует условие "&&(Table1.id2 == Table3.id2)" в джойне между 1-й и 2-й таблицами...
__________________
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Microsoft Dynamics AX general performance analysis scripts page 5 Blog bot DAX Blogs 0 01.09.2014 14:11
emeadaxsupport: Where to find hotfixes for Microsoft Dynamics AX 2009 & 2012 Blog bot DAX Blogs 1 09.11.2012 15:54
jinx: Dynamics AX – Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
Расширенные возможности Query - арифметические операции в условие Where. Lemming DAX: Программирование 10 07.02.2008 14:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:35.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.