ник: alex-freeman
Никакой рекурсии я тут не наблюдаю.
Для каждой записи Таблица1 будет выполнен ОДИН суммирующий запрос.
|
Lukas, может вы и правы и это не рекурсия в чистом виде. Но ведь сравнивается таблица1 с самой собой и для выполнения суммирующего запроса для каждой записи просматриваются все записи этой же таблицы1.
Надеюсь поле Таблица1.Компания имеет тип Long и содержит внешний ключ на справочную таблицу компаний?
|
к сожалению, тут вы правы "Таблица1.Компания" - это текстовое поле. Я его связал с ключевой таблицей и включил индексацию по Компания и Дата. В результате +1/3 производительности. Это конечно хорошо, за что, Lukas, большое спасибо! Но в целом проблему не решает. Если бы уменьшить время в разы...
Все же хочу сделать что запланировал, чувствую, что должно помочь. Ведь тогда, вместо того геморойного подзапроса для "нар.итог" всей исходной таблицы достаточно будет делать обычную группировку с суммированием для каждой группы: к1,к2 и т.д.
По-прежнему, прошу (уже всех) показать как получить на VBA список компаний и в цикле выполнять один и тот же запрос для каждой компании пока список не кончится одновременно записывая результаты выполнения запросов в стороннюю таблицу.
Кстати, может есть другой способ рассчитать поле "нар.итог" из моего примера?