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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.03.2006, 13:35   #1  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Связи таблиц в Аксапте
Как сделать в Ax следующий запрос:

PHP код:
SELECT     FROM         TABLE1 A INNER JOIN TABLE2 B ON 
A
.Field1 B.Field1 AND A.Field2 OR A.Field1 B.Field3 AND A.Field2 
т.е если Field2 = 0, то связь по одному полю, если 1, по другому

В идеале хотелось бы построить его с помощью Relation на таблицах, но если это невозможно, то хотя бы с помощью Query
Старый 03.03.2006, 14:28   #2  
ahtoh
Гость
 
n/a
а в чем проблема?
Старый 03.03.2006, 14:42   #3  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Проблема в следующем:
Если сделать Relation на таблице, т.е на Table1 две связи c Table2, в первой Table1.Field1 == Table2.Field1 и Table1.Field2 == 0, а во второй Table1.Field1 == Table2.Field3 и Table1.Field2 == 1, то в запрос попадает только одна связь. Если делать через Query, то как добавить связь по OR, ведь addLink связывает по AND?
Старый 03.03.2006, 14:51   #4  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
уже не раз обсуждалось:
addRange; AND vs OR
Возможности Ranges
...
поиск рулит

Одним словом - вместо addLink использовать addRange с нужным "сложным" условием...

Последний раз редактировалось vallys; 03.03.2006 в 14:56.
Старый 03.03.2006, 15:34   #5  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Так я умею. Хотелось бы сделать попроще. У Relation таблицы есть тип связи "Поле фиксировано" и "Поле ссылки фиксировано", на первый взгляд это то что нужно, но почему-то не работает. По идеи условия в рамках одного Relation должны связываться по AND, а разные Relation для одной таблицы по OR. Или я что-то не так понимаю? Кто-нибудь может объяснить как пользоваться этими самыми связями "Поле фиксировано" и "Поле ссылки фиксировано"?
Старый 03.03.2006, 16:14   #6  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Нет, если на таблице определено несколько relations с другой таблицей, использоваться будет только одна, причем, насколько я знаю, та, которая согласно алфавитному порядку идет раньше. Что касается Field Fixed и Related Field Fixed, вот цитата из девгайда:

Field fixed
(Table.Field==<EnumValue>)
put a constraint on your table as to which fields will have a lookup list with values from another table.
The condition is ANDed with your relation.

Related field fixed
(<EnumValue>==Table.Field)
filter the records selected in the other table, that is, when MorphX is selecting records in the other table, it only selects the records which meets this condition
The condition is ANDed with your relation.

Последний раз редактировалось Jabberwocky; 03.03.2006 в 16:21.
Старый 03.03.2006, 16:20   #7  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Да, действительно берет первое по алфавиту. Печально, придется делать через addRange
Теги
relation, table, таблица

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Не отображаются связи таблиц NNB DAX: Программирование 6 29.03.2007 15:21
Связи таблиц в datasource отчета Пагер Маяковский DAX: Программирование 1 02.07.2005 09:43
Размышления на тему “Системы контроля версий в Аксапте”. Андре DAX: База знаний и проекты 31 07.02.2005 12:29
Внебрачные связи в Аксапте AKIS DAX: Функционал 1 20.09.2002 10:21

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

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

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