Список документов. Динамический список

Аватар пользователя
Администратор
Сообщений: 163
Зарегистрирован: 27 фев 2011, 17:40
Откуда: откуда и все :)
СообщениеДобавлено: 14 янв 2021, 11:32
Итак, начнем с правил составления запроса формирования динамического списка.
  1. В запросе нельзя использовать временные таблицы. Вместо этого используйте вложенные запросы. Ниже приведу пример.
  2. Ни в коем случае не используйте группировку в верхнем запросе, все группировки закидывайте во вложенный запрос.
  3. Не используйте группы колонок отображения динамического списка, если не хотите отключить возможность сортировки по любой из отображаемых колонок.
Ну а теперь по порядку правил.

п.1
Как и обещал приведу пример вложенного запроса:
Код: выделить все
ВЫБРАТЬ
   ПримерДокумента.Ссылка,
   ИтоговаяСуммаПоДокументу.СуммаПоДокументу
ИЗ Документы.ПримерДокумента КАК ПримерДокумента
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
   ВЫБРАТЬ
      СУММА(ТЧПримерДокумента.Сумма) КАК СуммаПоДокументу,
      ТЧПримерДокумента.Ссылка КАК Ссылка
   ИЗ Документы.ПримерДокумента.ТЧТовары КАК ТЧПримерДокумента
   ГДЕ
      ТЧПримерДокумента.Проведен
   СГРУППИРОВАТЬ ПО
      ТЧПримерДокумента.Ссылка
   ) КАК ИтоговаяСуммаПоДокументу
   ПО ИтоговаяСуммаПоДокументу.Ссылка = ПримерДокумента.Ссылка

В данном примере специально использовано внутреннее соединение для оптимизации результирующего запроса, в том числе и условие проведения документа тоже во вложенном запросе.
Поясню построение запроса:
Вложенный запрос формирует агрегированный список документов с итоговой суммой по документу.
Через внутреннее соединение выбираем только те документы которые присутствуют во вложенном запросе и выдаём сумму по документу из вложенного запроса.

п.2
Группировка во вложенном запросе.

п.3
Не используйте группы колонок, если хотите дать возможность пользователю сортировать содержимое списка по любой из колонок простым нажатием на заголовок колонки.

Результирующий запрос должен быть абсолютно линейным, старайтесь избегать в его конструкции любых агрегирующих функций.

Всем удачи! ;)
Проблема, это задача в решении которой никто не заинтересован.
СВС
Цитата

Вернуться в Для программиста

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Яндекс.Метрика
cron