Спасибо большое.
Вот так совпадает с данными ОСВ:
X++:
select sum(AmountMST) from custTrans
where custTrans.AccountNum == "2545"
&& custTrans.TransDate <= 30\06\2010
&& custTrans.PostingProfile == "76.20"
exists join ledgerTrans
where ledgerTrans.AccountNum == "76.20.00" &&
ledgerTrans.Voucher == custTrans.Voucher &&
ledgerTrans.TransDate == custTrans.TransDate;
Поле correct можно не учитывать - там знаки сами проставлены в поле AmountMST (забавно наблюдать значения типа --300 или -+300), по крайней мере, у меня без учета этого поля сальдо совпадает с ОСВ. А вот PostingProfile все же нужен в фильтре по CustTrans - без него итоги не сходятся с ОСВ, видимо, есть операции по CustTrans с профилем отличным от "76.20", но разнесенные на 76.20.00.