12.08.2005, 08:02 | #1 |
Участник
|
Как ускорить запрос
while select sum(amount),payPeriod,sourceDate from RPayTrans group By sourceDate
where RPayTrans.payPeriod == payPeriod && RpayTrans.PayPeriod <= RpayParameters::PayPeriod() exists join RPayTable where RPayTable.payCtype == RPayTrans.payCtype && RPayTable.rpayTaxIncomeCode == incomeCode exists join emplTableLocal where emplTableLocal.emplId == RPayTrans.emplid && (emplTableLocal.payMainEmplId_Ru == emplId || emplTableLocal.emplId == emplId) { incomeValue += RPayTrans.amount; incomePercentage = RPayRateTable::find(RpayTaxParameters::find().incomePercentage).GetValue(RPayTrans.sourceDate,emplId)/100; discountValue += round(RPayTrans.amount * incomePercentage,RpayTaxParameters::find().taxRound); } Подскажите как упростить и ускорить выполнение такого запроса??? |
|
12.08.2005, 09:10 | #2 |
Участник
|
Попробуйте без exists join
PHP код:
|
|
12.08.2005, 09:12 | #3 |
Участник
|
Спасибо....
но это может как то повлият на результат? |
|
12.08.2005, 09:25 | #4 |
Участник
|
на результат это не повлияет.
+ если вы не используете функциональность с основным номером сотрудника, т.е. для всех сотрудников у вас emplId = payMainEmplId_Ru, то лучше убрать это условие из запроса: PHP код:
|
|
12.08.2005, 09:32 | #5 |
Участник
|
Спасибо большое...
я тоже об этом подумал.... сейчас проверяю есть ли расхождения.... Спасибо |
|
|
Похожие темы | ||||
Тема | Ответов | |||
передача параметров в запрос while select | 13 | |||
Как собрать запрос? | 11 | |||
Почему join запрос разбивается на подзапросы!? | 59 | |||
Как ускорить запрос? | 2 | |||
Не работает запрос на нескольких компаниях | 3 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|