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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.07.2007, 09:33   #1  
mu_nan is offline
mu_nan
Участник
 
5 / 11 (1) +
Регистрация: 20.04.2007
Снова запрос
Не могу связать таблицы по условию или:

Код:
 
select * 
from Contragent as A 
join Ledger as B 
on B.VDTSC0 = A.Code or B.VKTSC0 = A.Code or B.VDTSC1 = A.Code
where A.Code = ' *'
Подскажите, как правильно связать 2 DataSources
Старый 09.07.2007, 12:37   #3  
mu_nan is offline
mu_nan
Участник
 
5 / 11 (1) +
Регистрация: 20.04.2007
Да, вторая ссылка для меня оказалась более информативна, чем первая

А вообще, ситуация такая.
Я поместила в форму 2 датасорса. Когда в первом (А) выбирается строка, во втором (В) должны отбираться строки, у которых в одном из 10 полей (любом) есть значение из первого ДС.
В (А) я перекрыла метод leave и вызываю из него В.executeQuery в котором устанавливаю значение range, соответствующее строке из (А).

Мне кажется это не совсем верно. Я еще не отладила толком, почему-то запрос вызывается дважды
За это сообщение автора поблагодарили: kashperuk (1).
Старый 09.07.2007, 12:48   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вы можете связать их без перекрытия метода leave.
Через дизайнер это сделать не получиться, но вы можете перекрыть метод init на источнике данных втором, и в нем написать требуемые условия, используя приведенную выше ссылку (первую ) в качестве основы.
Тогда вызов обновления строк будет вызываться уже системой.
Старый 09.07.2007, 12:53   #5  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Да с leave ситуация немного туманна, вернее было бы уж active пользовать
Старый 09.07.2007, 13:14   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
>>>10 полей (любом) есть значение из первого ДС.

А можно узнать, что это за таблицы и что это за 10 полей?
Старый 09.07.2007, 13:29   #7  
mu_nan is offline
mu_nan
Участник
 
5 / 11 (1) +
Регистрация: 20.04.2007
init и active попробую, спасибо.
А 10 полей - это субконто проводок из 1С, ну соответственно в любом из них может быть нужное мне значение
Старый 09.07.2007, 14:51   #8  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Насколько помню 1С это ж аналитики. Неужели по ним может быть пересечение?
Мдя... однако.
Старый 09.07.2007, 14:52   #9  
mu_nan is offline
mu_nan
Участник
 
5 / 11 (1) +
Регистрация: 20.04.2007
active работает примерно так же, как leave.
А с init я что-то не догоняю: у меня relations между таблицами не прописан (так как связь по нескольким полям с условием "или"), т.е. мне его нужно добавлять через addLink? Что-то я не пойму, как туда "или" запихнуть
Старый 09.07.2007, 14:55   #10  
mu_nan is offline
mu_nan
Участник
 
5 / 11 (1) +
Регистрация: 20.04.2007
2 MikeR
По Д-ту и К-ту точно может быть
Старый 09.07.2007, 14:59   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от mu_nan Посмотреть сообщение
active работает примерно так же, как leave.
А с init я что-то не догоняю: у меня relations между таблицами не прописан (так как связь по нескольким полям с условием "или"), т.е. мне его нужно добавлять через addLink? Что-то я не пойму, как туда "или" запихнуть
не через addLink, а через where
См. приведенную Максимом ссылку.
Раздел - Conditional Joins
Старый 09.07.2007, 15:02   #12  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
А там и про ИЛИ говориться, в range
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
передача параметров в запрос while select tolstjak DAX: Программирование 13 15.02.2009 19:39
Как собрать запрос? moid DAX: Программирование 11 02.07.2007 12:07
Почему join запрос разбивается на подзапросы!? 3oppo DAX: Программирование 59 28.06.2007 11:52
Долго отрабатывает запрос по таблице InventItemLocation AlexeyBP DAX: Администрирование 1 30.05.2007 17:33
Oracle - снова индексы Bars DAX: Программирование 19 23.03.2006 15:31
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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