Снегопат
https://snegopat.ru/forum/

Помогите с запросом
https://snegopat.ru/forum/viewtopic.php?f=6&t=304
Страница 2 из 2

Автор:  JohnyDeath [ 05 дек 2012, 10:46 ]
Заголовок сообщения:  Re: Помогите с запросом

Т.е. вы выгружали в ТЗ и далее, накладывали отбор по конкретным контрагентам, вставляли сумму в первую строку, там же "продолжить".
У меня как бы тоже эта таблица практически последняя, именно она уже должна пойти в регистр на запись.
Меня просто смущает, что отбор по ТЗ будет тоже не шибко быстро работать на больших объемах данных. Это в данном пример ключ - "Контрагент", в реальной задаче это тоже ключ по нескольким полям, а у нас в 8-ке нет ИндескированнойТаблицы, которая бы могла построить единый индекс по нескольким полям. Вот этот момент меня и смущает.

Автор:  Kir [ 06 дек 2012, 07:56 ]
Заголовок сообщения:  Re: Помогите с запросом

Хм, а метод ТаблицаЗначений.Индексы.Добавить("Поле1,Поле2") разве не дает составной индекс?

В одном запросе вроде должно получиться через поиск максимума первого измерения для контрагента, потом поиск максимума второго измерения для сочетания контрагент+найденый максимум первого измерения и т.д. Получим таблицу в которой одна строка для каждого контрагента.
Не знаю насколько такой подход оптимален...

Можно отсортировать таблицу по контрагенту, обойти проверяя что контрагент изменился, накопить таблицу из первых строк.

Ну или через СКД ограничить выборку детальных записей.

Автор:  JohnyDeath [ 06 дек 2012, 08:03 ]
Заголовок сообщения:  Re: Помогите с запросом

Kir писал(а):
Хм, а метод ТаблицаЗначений.Индексы.Добавить("Поле1,Поле2") разве не дает составной индекс?

Да, наверное дает. Ступил.
Kir писал(а):
В одном запросе вроде должно получиться через поиск максимума первого измерения для контрагента, потом поиск максимума второго измерения для сочетания контрагент+найденый максимум первого измерения и т.д. Получим таблицу в которой одна строка для каждого контрагента.
Не знаю насколько такой подход оптимален...

Это первое что приходит на ум и об этом я сразу и написал. Но чем больше таких полей, тем больше вложенность, соот-но и производительность падает.
У себя пока так и оставил.

Автор:  swi2mer [ 18 фев 2013, 15:35 ]
Заголовок сообщения:  Re: Помогите с запросом

Такой вариант:
делается втРасходыМин (или Макс): группировка по контрагенту, по остальным полям минимум или максимум.
К этой таблице присоединяется втДолги по контрагенту.
Результат соединения присоединяется к втРасходы по всем полям втРасходы

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/