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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.07.2021, 16:24   #1  
amin is offline
amin
Участник
 
12 / 10 (1) +
Регистрация: 27.07.2006
Попробую написать SQL, соответствующий примеру (наверно так будет проще)

Таблицы из первого Union - t11, t12, t13
Таблицы из второго Union - t21, t22, t23

SELECT f11.f1,f12.f1, f13.f1
FROM f11
INNER JOIN f12 ON f11.r2=f12.r2
INNER JOIN f13 ON f12.r3=f13.r3
UNION ALL
SELECT f23.f1,f22.f1, f21.f1
FROM f21
INNER JOIN f22 ON f21.r2=f22.r2
INNER JOIN f23 ON f22.r3=f23.r3

Соответственно, имеем 3 колонки. Хочу в Union секциях расставить поля заданным образом, вне зависимости от того, какими addLik я собирал Query
Старый 08.07.2021, 16:35   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от amin Посмотреть сообщение
Хочу в Union секциях расставить поля заданным образом, вне зависимости от того, какими addLik я собирал Query
Возможно есть смысл сделать промежуточные View для каждого соединения таблиц. И объединять уже их
Старый 08.07.2021, 16:53   #3  
amin is offline
amin
Участник
 
12 / 10 (1) +
Регистрация: 27.07.2006
Все не то. Вот код, задающий колонки
Query UNION Ax2009 - идентификация строки

tatic void union(Args _args)
{
Query query;
QueryBuildDataSource qbdsCustTable;
QueryBuildDataSource qbdsVendTable;
QueryRun queryRun;
CustVendTable custVendTable;
TableName tableName;
;
query = new Query();
query.queryType(QueryType::Union);
query.allowCrossCompany(true);
query.addCompanyRange('ceu');
query.addCompanyRange('cee');

qbdsCustTable = query.addDataSource(tableNum(CustTable));
qbdsCustTable.unionType(UnionType::UnionAll); // Include duplicate records
qbdsCustTable.fields().dynamic(false);
qbdsCustTable.fields().clearFieldList();
qbdsCustTable.fields().addField(fieldNum(CustTable, AccountNum));
qbdsCustTable.fields().addField(fieldNum(CustTable, Name));
qbdsCustTable.fields().addField(fieldNum(CustTable, DataAreaId));
qbdsVendTable = query.addDataSource(tableNum(Vendtable));
qbdsVendTable.unionType(UnionType::UnionAll); // Include duplicate records
qbdsVendTable.fields().dynamic(false);
qbdsVendTable.fields().clearFieldList();
qbdsVendTable.fields().addField(fieldNum(VendTable, AccountNum));
qbdsVendTable.fields().addField(fieldNum(VendTable, Name));
qbdsVendTable.fields().addField(fieldNum(VendTable, DataAreaId));

Все примеры почему-то берут только один QueryBuildDataSource. Брать больше "уставы не велят"(с)? Или есть явный запрет? Или "нужно уметь их готовить"?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
stephenmann: Technical History of Dynamics AX - From Axapta 3.0 to AX2012 Blog bot DAX Blogs 5 03.03.2017 10:22
dynamicsax-fico: Invoice search AX2012 vs. AX7 (Part 2) Blog bot DAX Blogs 0 01.04.2016 10:11
Сохранение настроек GRID (ширина и порядок колонок) liza DAX: Программирование 1 25.07.2003 22:20

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.