Sql Dynamics Ax 2009:使用具有相同字段名称的UNION和表创建视图
我想在Sql Dynamics Ax 2009:使用具有相同字段名称的UNION和表创建视图,sql,axapta,x++,dynamics-ax-2009,Sql,Axapta,X++,Dynamics Ax 2009,我想在dynamics ax 2009中创建一个视图,该视图必须返回两个或多个具有相同字段名称的表 我准备了sql查询(下面是查询),但我不知道如何将这些脚本移动到ax视图中 select invent.ASSETID, invent.ITEMID, invent.JOURNALID as 'ids' from inventjournaltrans invent where invent.ASSETID != '' UNION select purch.ASSETID, pu
dynamics ax 2009
中创建一个视图,该视图必须返回两个或多个具有相同字段名称的表
我准备了sql查询(下面是查询),但我不知道如何将这些脚本移动到ax
视图中
select invent.ASSETID, invent.ITEMID, invent.JOURNALID as 'ids'
from inventjournaltrans invent
where invent.ASSETID != ''
UNION
select purch.ASSETID, purch.ITEMID, purch.PURCHID as 'ids'
from purchline purch
where purch.ASSETID != ''
请查找下面的x++查询示例。但您必须记住,在标准AX字段中,PurchId和JournalId具有不同的长度,您将得到以下错误: 联合查询中存在字段不匹配。Field JournalId与Field PurchId不兼容 如果您需要创建AOT查询,请参考此链接是否查看和?
Query query;
QueryBuildDataSource qbdsInventJournalTrans;
QueryBuildDataSource qbdsPurchLine;
QueryBuildRange qbrInventJournalTrans;
QueryBuildRange qbrPurchLine;
;
query = new Query();
query.queryType(QueryType::Union);
qbdsInventJournalTrans = query.addDataSource(tableNum(InventJournalTrans));
qbdsInventJournalTrans.unionType(UnionType::UnionAll); // Include duplicate records
qbdsInventJournalTrans.fields().dynamic(false);
qbdsInventJournalTrans.fields().clearFieldList();
qbdsInventJournalTrans.fields().addField(fieldNum(InventJournalTrans, AssetId));
qbdsInventJournalTrans.fields().addField(fieldNum(InventJournalTrans, ItemId));
//qbdsInventJournalTrans.fields().addField(fieldNum(InventJournalTrans, JournalId));
qbrInventJournalTrans = qbdsInventJournalTrans.addRange(fieldNum(InventJournalTrans, AssetId));
qbrInventJournalTrans.value(SysQuery::valueNotEmptyString());
qbdsPurchLine = query.addDataSource(tableNum(PurchLine));
qbdsPurchLine.unionType(UnionType::UnionAll); // Include duplicate records
qbdsPurchLine.fields().dynamic(false);
qbdsPurchLine.fields().clearFieldList();
qbdsPurchLine.fields().addField(fieldNum(PurchLine, AssetId));
qbdsPurchLine.fields().addField(fieldNum(PurchLine, ItemId));
//qbdsPurchLine.fields().addField(fieldNum(PurchLine, PurchId));
qbrPurchLine = qbdsPurchLine.addRange(fieldNum(PurchLine, AssetId));
qbrPurchLine.value(SysQuery::valueNotEmptyString());