2017-04-07 73 views
0


我想在QueryBuildDataSource中使用或存在子句,但我不知道如何使用它。
我准备SQL查询:Dynamics AX 2009:或者存在加入查询建立数据源

select * from LedgerJournalTable l 
where 
( 
    l.createdBy = '...' and l.WorkflowStatus != 99 
) 
or exists 
( 
    select top 1 'x' from WorkflowWorkItemTable w 
    where l.RecId = w.RefRecId 
    AND w.REFTABLEID = 211 
    and w.USERID  = '....' 
) 

,我尝试建立斧头查询

queryDS = LedgerJournalTable_ds.query().dataSourceTable(tableNum(LedgerJournalTable)); 

    ledgerStatusFilter = queryDS.addRange(fieldnum(LedgerJournalTable,WorkflowStatus)); 
    ledgerUserFilter = queryDS.addRange(fieldnum(LedgerJournalTable,createdBy)); 

    ledgerStatusFilter.value("!=99"); 
    ledgerUserFilter.value("..."); 

    qbdsWorkItemtTable = queryDS.addDataSource(tablenum(WorkflowWorkItemTable)); 
    qbdsWorkItemtTable.joinMode(JoinMode::NoExistsJoin); 
    qbdsWorkItemtTable.addLink(fieldnum(LedgerJournalTable,RecId), fieldnum(WorkflowWorkItemTable,RefRecId)); 
    qbdsWorkItemtTable.addRange(fieldnum(WorkflowWorkItemTable,RefTableId)).value(strfmt("%1",tablenum(LedgerJournalTable))); 

    workflowUser  = qbdsWorkItemtTable.addRange(fieldnum(WorkflowWorkItemTable, UserId)); 

    workflowUser.value("..."); 

    info(strfmt("%1", queryDS.toString() )); 

索里对我的英语不好:C

回答

2

很抱歉,但AX查询不支持or exists

另请参阅此similar question