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());