为什么我的AX SQL不能正常工作

时间:2013-01-09 18:40:51

标签: dynamics-ax-2009 x++ axapta

我们合并了几百个有交易的重复客户帐户。例如,客户“Alexander Smith”和“Alex Smith”合并为“Alexander Smith”。在我们的custTableMergeLog中,我使用旧的/新的cust帐户插入了此合并的记录。

此查询应仅识别具有无效客户的ledgerJournalTrans记录,但我们有一条记录已合并。

当我取消注释两行时,它不起作用......任何想法?

while select ledgerJournalTrans
    where ledgerJournalTrans.AccountType    == LedgerJournalACType::Cust
    notexists join custTable
        where custTable.AccountNum          == ledgerJournalTrans.AccountNum
    //exists join custTableMergeLog
    //    where custTableMergeLog.CustAccountOld  == ledgerJournalTrans.AccountNum
{
    select firstonly custTableMergeLog2
        where custTableMergeLog2.CustAccountOld == ledgerJournalTrans.AccountNum;

    info(strfmt("Account# %1, CustTable Name: %2, CustMergeLog %3", ledgerJournalTrans.AccountNum, CustTable::find(ledgerJournalTrans.AccountNum).Name, custTableMergeLog2.CustAccountOld));

    i++;

    if (i>10)
        break;
}

1 个答案:

答案 0 :(得分:1)

从X ++查询到真实SQL的转换并不总是按预期工作,我打赌你有一个这样的例子,它不起作用。

如果您在custTableMergeLog中启动查询,然后加入ledgerJournalTrans并最终加入custTable,该怎么办?

有点像这样:

while select custTableMergeLog
     join ledgerJournalTrans
         where custTableMergeLog.CustAccountOld == ledgerJournalTrans.AccountNum
     notexists join custTable
         where custTable.AccountNum == ledgerJournalTrans.AccountNum

这对你有用吗?

相关问题