2012-03-22 25 views
1

我的請求是,客戶想要放入日期範圍(通常爲一個月),並取出所有在該日期範圍內至少有一行發佈的總帳日記帳。例如,他們會在一月份的三月份發佈期刊,並想知道哪些期刊有這些數據。嘗試僅使用AX查詢對象加入

基本的想法是LedgerJournalTable to firstonly LedgerJournalTrans。我不是查詢對象的最佳選擇。爲什麼我的查詢不工作?它會返回多個期刊,而不僅僅是一個。我想我可以分組並且可以,但我認爲這會起作用。

static void Job38(Args _args) 
{ 
    Query     q; 
    QueryRun    queryRun; 
    QueryBuildDatasource qbd; 
    QueryBuildDatasource qbd2; 
    QueryBuildRange   qbr; 
    LedgerJournalTable  ledgerJournalTable; 
    ; 

    info(strfmt("%1", date2strxpp(str2date('10/01/2011', 213)))); 

    q = new Query(); 
    qbd = q.addDataSource(tablenum(LedgerJournalTable)); 
    qbd2 = qbd.addDataSource(tableNum(LedgerJournalTrans)); 
    qbd2.relations(true); 
    qbd2.firstOnly(true); 
    qbd2.joinMode(JoinMode::InnerJoin); 
    qbr = qbd2.addRange(fieldNum(LedgerJournalTrans, TransDate)); 
    qbr.value(strfmt('(TransDate > %1) && (TransDate < %2)', Date2StrXpp(str2date('10/01/2011', 213)), Date2StrXpp(str2date('10/31/2011', 213)))); 

    queryRun = new QueryRun(q); 

    while (queryRun.next()) 
    { 
     ledgerJournalTable = queryRun.get(tableNum(LedgerJournalTable)); 

     info(strfmt("%1", ledgerJournalTable.JournalNum)); 
    } 
} 

回答

2

您試過JoinMode::ExistsJoin

+0

這使它正常工作。我希望我能做到qbd2.firstonly(true),它會工作。 – 2012-03-22 20:38:43