18.10.2013, 10:22 | #1 |
Участник
|
Поиск проводки ГК по сумме с корреспонденцией
MS DAx 2009, KernelVersion: 5.0.1500.6491
MS SQL Server 2008 R2 Есть задача: найти проводку с корреспондирующей проводкой, по определенным условиям. а) Запрос такой: X++: LedgerTrans ledgerTrans, ledgerTransCorr; AmountCur amountCur = 36809351.98; select ledgerTrans where ledgerTrans.Voucher == "ОСЖ002243" && ledgerTrans.TransDate == 30\09\2011 && ledgerTrans.AmountCur == amountCur && (ledgerTrans.AccountNum == "41.10159") exists join ledgerTransCorr where ledgerTransCorr.BondBatch_RU == ledgerTrans.BondBatch_RU && ledgerTransCorr.BondBatchTrans_RU == ledgerTrans.BondBatchTrans_RU && ledgerTransCorr.Crediting != ledgerTrans.Crediting && (ledgerTransCorr.AccountNum == "00.010"); б) Если выполнить запрос без поиска корреспонденции: X++: select ledgerTrans where ledgerTrans.Voucher == "ОСЖ002243" && ledgerTrans.TransDate == 30\09\2011 && ledgerTrans.AmountCur == amountCur && (ledgerTrans.AccountNum == "41.10159"); в) Если выполнить запрос без жесткого условия по сумме: X++: select ledgerTrans where ledgerTrans.Voucher == "ОСЖ002243" && ledgerTrans.TransDate == 30\09\2011 && ledgerTrans.AmountCur >= amountCur - 0.0001 && ledgerTrans.AmountCur <= amountCur + 0.0001 //&& ledgerTrans.AmountCur == amountCur && (ledgerTrans.AccountNum == "41.10159") exists join ledgerTransCorr where ledgerTransCorr.BondBatch_RU == ledgerTrans.BondBatch_RU && ledgerTransCorr.BondBatchTrans_RU == ledgerTrans.BondBatchTrans_RU && ledgerTransCorr.Crediting != ledgerTrans.Crediting && (ledgerTransCorr.AccountNum == "00.010") ; Получается система при запросе с 1 таблицей и с 2-мя по разному сравнивает суммы. В чем может быть дело? У кого-нибудь есть какие-то соображения? |
|