|  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 | |||
| 
 |