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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.11.2007, 13:38   #1  
Saber is offline
Saber
Участник
 
10 / 10 (1) +
Регистрация: 07.03.2007
Воскрешение мумии ... или давно забытая история про два Outer Join
Доброго всем времени суток!
Смостоятельно проковырявшись неделю с проблемой построения datasourc'а на 3-х таблицах с 2-я outer join'ми на Axapta 2.5 SP5 под MS SQL 2005 (в режиме совместимости) дошел до ручки решил обратиться за помощью.
Прошу сильно не пинать, т.к. я всего лишь администратор.
Предыстория такая. Руководством была поставлена задача мигрировать с Oracle на SQL. C переносом данных больших проблем не возникло, а вот на2-х формах, использующих в качестве datasourc'а 3 таблицы, связанные по outer join пока полный затык.
Причину установил. Форум и FAQ на эту тему проштудировал. Существующий код под Oracle разобрал по косточкам. Но вот конкретный алгоритм решения задачи применительно к SQL в голове никак не хочет вырисовываться.
Подскажите, ПЛЗ, в чем изюмика!
Старый 28.11.2007, 14:48   #2  
Saber is offline
Saber
Участник
 
10 / 10 (1) +
Регистрация: 07.03.2007
Господа!
Ну снизойдите до прокаженного Аксаптой 2.5!
Пересказываю свою проблему другими словами.
Есть форма InventJournalTable. В её datasource у нас 3 таблицы:
- InventJournalTable;
- RContractTable;
- CustTable.
Далее у нас сделано так.
В методе таблицы InventJournalTable объявляется первый datasource и его параметры (Dynalink и Range):
qb = inventJournalTable_ds.query().dataSourceNo(1);
В методе таблицы RContractTable объявляется второй datasource:
qb = inventJournalTable_ds.query().dataSourceNo(2);
InventJournalTable_ds.query().dataSourceNo(2).joinMode(JoinMode::OUTERJOIN);
И, наконец, в методе таблицы CustTable объявляется третий datasource:
qb = inventJournalTable_ds.query().dataSourceNo(3);
InventJournalTable_ds.query().dataSourceNo(3).joinMode(JoinMode::OUTERJOIN);
Когда приходит пора исполнить метод executeQuery таблицы InventJournalTable у меня собирается такая строка:
SELECT * FROM InventJournalTable WHERE ((Posted = Нет)) AND ((JournalType = Спецификация)) OUTER JOIN * FROM RContractTable WHERE InventJournalTable.ExternalReferences[4]=RContractTable.RContractAccount OUTER JOIN * FROM CustTable WHERE InventJournalTable.ExternalReferences[1]=CustTable.AccountNum
Все пушисто и красиво, но как только эта строка отправляеться в парсер AOS'а, последний тут же возвращает ошибку:
"Невозможно выбрать запись в таблице 'Таблица клиентов' ('CustTable')
Использован оператор объединения таблиц join, но выражение where не содержит связи между таблицами."
Согласно2 и более OUTER JOIN к одному паренту и
Данные в Grid из таблиц, связанных по Outer Join
это промах мелкомягких, но вроде как есть обходной маневр построения таких datasourc'ов через query. В примерах, выложенных по ссылкам предлагается связывание по RecID, но для этих таблиц такой прием не проходит.
Как можно связать эти таблицы чтобы запрос корректно отработал под MS SQL?
Старый 28.11.2007, 16:14   #3  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
В 3.0 и 4.0 та же проблема!
Исправлено в 5.0!
Старый 28.11.2007, 17:12   #4  
Saber is offline
Saber
Участник
 
10 / 10 (1) +
Регистрация: 07.03.2007
Цитата:
Сообщение от Morpheus Посмотреть сообщение
В 3.0 и 4.0 та же проблема!
Исправлено в 5.0!
Спасибо! Успокоили!
Теги
ax2.5, ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Двойной Outer Join в Query LTA DAX: Программирование 2 21.01.2020 09:28
Несколько outer join в запросе _scorp_ DAX: Программирование 2 11.04.2008 10:56
Данные в Grid из таблиц, связанных по Outer Join cherv DAX: Программирование 2 17.02.2007 01:36
2 и более OUTER JOIN к одному паренту Ronin DAX: Программирование 21 19.12.2005 13:42
outer join для трех таблиц r25 DAX: Программирование 4 29.04.2004 15:42

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:55.