![]() |
#35 |
Участник
|
По поводу использования 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)); 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, то такой запрос работает как ожидалось. Если же использовать NotExists, то необходимо рассматривать каждый запрос по отдельности для правильного составления. 2 Bars В вашем случае я бы предложил сделать следующее 1. Подключать первым InventSum 2. Подключать его как ExistsJoin, 3. В условии изменить сравнение с ">" на "<="
__________________
Axapta v.3.0 sp5 kr2 |
|