2017-03-06 31 views
0

dynamics ax 2009にビューを作成したいが、このビューはこの同じフィールド名を持つ2つ以上のテーブルを返さなければならない。Dynamics Ax 2009:UNIONとこの同じフィールド名を持つテーブルを使用してビューを作成する

私は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 != '' 
+0

[概要の表示](https://msdn.microsoft.com/en-us/library/cc634339(v= ax.50).aspx)と[How to:データソースの結合](https ://msdn.microsoft.com/en-us/library/cc605991(v = ax.50).aspx)? –

答えて

0

以下のx ++クエリのサンプルをご覧ください。しかし、あなたは標準AXフィールドにPurchIdとJournalIdは異なる長さを有し、そして次のエラーを取得することを心に留めなければなりません:

There is a field mismatch in the union query. Field JournalId is not compatible with field PurchId.

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

あなたはAOTクエリHow to: Combine Data Sources

を作成する必要がある場合は、このリンクを参照してください
関連する問題