Цитата:
Сообщение от
Silphidae
Но проблема в том, что однозначной связи между CustTrans и LedgerTrans нет.
Однозначной нет. Но это не значит что ее вообще нет.
X++:
while select custTrans
where custTrans.AccountNum == "2545"
// && custTrans.PostingProfile == "76.20"
&& custTrans.TransDate <= 30\06\2010
{
select firstonly ledgerTrans
where ledgerTrans.AccountNum == "76.20.00"
&& ledgerTrans.Voucher == custTrans.Voucher
&& ledgerTrans.TransDate == custTrans.TransDate ;
if(ledgerTrans.recId) // Это условие лишнее - запись есть всегда
saldo += custTrans.AmountMST;
}
Можно это переписать сразу в джойн. Только убедитесь что у Вас разным хоз операциям соответствуют разные значения поля Voucher.
Например, так:
X++:
select sum(AmountMST) from custTrans
where custTrans.AccountNum == "2545"
&& custTrans.TransDate <= 30\06\2010
exists join ledgerTrans
where ledgerTrans.AccountNum == "76.20.00" &&
ledgerTrans.Voucher == custTrans.Voucher &&
ledgerTrans.TransDate == custTrans.TransDate;