我们合并了几百个有交易的重复客户帐户。例如,客户“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;
}
答案 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
这对你有用吗?