![]() |
#11 |
Участник
|
Итак, по-порядку:
Про запрос - спасибо. Это, думаю, достаточное подтверждение того, что второй будет быстрее. Про priceDiscLine.ItemId - В запросе стоит условие, которое проверяет, что ItemId должно быть НЕ пустое. Но выборка идет, по сути, из двух таблиц. Одна из них, к примеру, SalesLine, и в ней у нас ItemId всегда заполнен, правильно? Вторая - InventTableModule - и там поле ItemId тоже всегда заполнено. (в обоих таблицах есть уникальные индексы, содержащие поле ItemId и еще одно поле) Поэтому получается, что эта проверка - лишняя. Или я чего-то не понял? И напоследок, про саму переменную PriceDiscLine. После запроса, она передается в класс Цитата:
while select sum(LineAmount) from priceDiscLine
group by ItemId where priceDiscLine.SalesPurchId == this.SalesPurchId && priceDiscLine.ItemId join inventTableModule group by EndDisc where inventTableModule.ItemId == priceDiscLine.ItemId && inventTableModule.ModuleType == moduleType && inventTableModule.EndDisc == NoYes::Yes { balanceEndDisc += priceDiscLine.LineAmount; } priceDisc = new PriceDisc(this.moduleType(), priceDiscLine.ItemId, priceDiscLine.inventDim(), priceDiscLine.Unit, priceDate, priceDiscLine.Qty, this.AccountNum, this.Currency); Врядли я настолько плохо понимаю работу с Maps.. Если бы там хотя бы использовались this.поля... А так - поля именно этой переменной |
|
Теги |
bug report, баг, ошибка, dynamics |
|
|