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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.07.2021, 14:19   #1  
amin is offline
amin
Участник
 
12 / 10 (1) +
Регистрация: 27.07.2006
Порядок колонок UNION Ax2012
Добрый день, All!

Вопрос выглядит простым, но явного ответа я не нашел.
Создается Query с Union
В каждой секции Union провязаны QueryBuildDataSource различных таблиц в порядке, как позволяет addLink. Порядок колонок не соответствует порядку QueryBuildDataSource.

Как подобное реализуется?
Старый 08.07.2021, 15:06   #2  
Pandasama is offline
Pandasama
Участник
 
287 / 75 (3) ++++
Регистрация: 11.08.2014
Адрес: Барнаул
Порядок колонок? а какую роль он играет, какая разница в каком они порядке?
Старый 08.07.2021, 15:25   #3  
amin is offline
amin
Участник
 
12 / 10 (1) +
Регистрация: 27.07.2006
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Порядок колонок? а какую роль он играет, какая разница в каком они порядке?
SQL изучать не пробовали?
Старый 08.07.2021, 16:05   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,338 / 1666 (62) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
amin, я тоже не понял вас. Попробуйте объяснить что вы имеете в виду. А если есть возможность то прикрепите скриншот.
Старый 08.07.2021, 16:24   #5  
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:31   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,338 / 1666 (62) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
https://docs.microsoft.com/en-us/dyn...-a-union-query
Цитата:
The number, order, and data type of each column must match the fields selected in the first data source
Старый 08.07.2021, 16:35   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,338 / 1666 (62) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от amin Посмотреть сообщение
Хочу в Union секциях расставить поля заданным образом, вне зависимости от того, какими addLik я собирал Query
Возможно есть смысл сделать промежуточные View для каждого соединения таблиц. И объединять уже их
Старый 08.07.2021, 16:53   #8  
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. Брать больше "уставы не велят"(с)? Или есть явный запрет? Или "нужно уметь их готовить"?
Старый 08.07.2021, 16:58   #9  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,338 / 1666 (62) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Наверное вам нужен addSelectionField
как оформить запрос union или full join
За это сообщение автора поблагодарили: Logger (5).
Старый 08.07.2021, 17:57   #10  
amin is offline
amin
Участник
 
12 / 10 (1) +
Регистрация: 27.07.2006
За что я люблю...
подобные диалоги, так это за то, что не захочешь, а сам начнешь моделировать проблему, .... а динамический SQL в аксапте, за то, что его проектировал гений, а реализовывали руожопы. Вывод - данная функциональность сделана "ну, если тебе сильно нужно для простых случаев" (а для сложных пиши на чистом SQL, и не напрягай себя и других). Похоже, как-то так.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
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, время: 23:55.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.