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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2005, 09:35   #35  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
По поводу использования fetchMode(QueryFetchMode::One2One)

При разборе полетов выяснилось, что при использовании такого режима для следующего Query
X++:
Query    q = new Query();
    QueryBuildDatasource    qbds;
    ;
    qbds = q.addDatasource(tablenum(table1));
    qbds.AddDatasource(tablenum(table2));
    qbds.DatasourceTable(tablenum(table2)).
      joinMode(JoinMode::[No]ExistsJoin);
    qbds.DatasourceTable(tablenum(table2)).
      fetchMode(QueryFetchMode::One2One);
    qbds.DatasourceTable(tablenum(table2)).
      addLink(fieldnum(Table1, field1), fieldnum(Table2, field2));
    
    qbds.AddDatasource(tablenum(table3));
     qbds.DatasourceTable(tablenum(table3)).
      joinMode(JoinMode::[No]ExistsJoin);
     qbds.DatasourceTable(tablenum(table3)).
      fetchMode(QueryFetchMode::One2One);
     qbds.DatasourceTable(tablenum(table3)).
      addLink(fieldnum(Table1, field2), fieldnum(Table3, field2));
Axapta формирует на сервере запрос в таком виде
X++:
select * 
      from table1 
        where [not] Exists(select 'x' 
                          from table2
                       where table1.field1 = table2.field1 and 
                       [not] Exists(select 'x' 
                                    from table3 
                                    where table1.field2 = table3.field2))
т.е. каждый добавляемый источник данных, подключаемый ч/з Exists или NoExists будет попадать в предложение where предыдущего подключенного источника данных на том-же уровне вложенности

Если использовать подключение источников данных ч/з Exists, то такой запрос работает как ожидалось. Если же использовать NotExists, то необходимо рассматривать каждый запрос по отдельности для правильного составления.

2 Bars

В вашем случае я бы предложил сделать следующее

1. Подключать первым InventSum
2. Подключать его как ExistsJoin,
3. В условии изменить сравнение с ">" на "<="
__________________
Axapta v.3.0 sp5 kr2
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Метод addRange() и его использование (верное) Akinak DAX: Программирование 8 06.04.2007 00:32
AddRange не фильтрует Ихъ бин программикеер DAX: Программирование 6 01.09.2006 14:27
Расширенный AddRange и OuterJoin Russland DAX: Программирование 0 04.07.2006 16:36
Можно ли редактировать форму, если на нее наложен addRange? Hans DAX: Программирование 10 22.05.2006 16:35
Как добавить в addRange условие по "или" на контейнерные поля? Lora DAX: Программирование 9 29.11.2004 13:52

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

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

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