Цитата:
Сообщение от
mazzy
Поэтому запрос, полностью аналогичный вашему, в Аксапте должен быть таким:
Хорошенько подумав, можно и этот запрос (с сортировкой по коду договора) сильно соптимизировать:
X++:
static void Job11(Args _args)
{
VendTrans VendTrans;
VendTable VendTable;
while select sum(AmountMST), sum(SettleAmountMST) from VendTrans
group by RContractCode, RContractAccount, AccountNum
where VendTrans.amountCur != VendTrans.settleAmountCur
{
VendTable = VendTable::find(VendTrans.AccountNum);
info(strfmt("%1 %2 %3 %4", VendTable.AccountNum, VendTable.Name,VendTrans.RContractAccount,VendTrans.RContractCode));
}
}
Другое дело, что в VendTrans нет индекса по RContractCode...
Но это уже совсем
другая история, связанная с полным отсутствием оптимизации локального функционала...
===========
и если этот запрос делается внутри транзакции, то при отсутствии индекса по RContractCode может быть стоит VendTable внести в сам запрос, а не использовать метод find... Но это уже нужно смотреть в конкретный код и в план запроса...