Использование упорядочивания во вложенных запросах 

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

Для того чтобы во вложенном запросе было возможно упорядочивание, необходимо, чтобы во вложенном запросе осуществлялось ограничение по количеству получаемых записей. Т.е, вложенный запрос может содержать упорядочивание только в том случае, если он также содержит конструкцию ПЕРВЫЕ.

В качестве примера рассмотрим запрос, который получает объем продаж по пяти самым дорогим товарам. Запрос будет выглядеть следующим образом:

Копировать в буфер обмена

ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СуммаОборот
ИЗ
    (ВЫБРАТЬ ПЕРВЫЕ 5
        Номенклатура.Ссылка КАК Ссылка
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
   
    УПОРЯДОЧИТЬ ПО
        Номенклатура.ЗакупочнаяЦена УБЫВ) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(,,,
            Номенклатура В
                (ВЫБРАТЬ ПЕРВЫЕ 5
                    Номенклатура.Ссылка КАК Ссылка
                ИЗ
                    Справочник.Номенклатура КАК Номенклатура
                УПОРЯДОЧИТЬ ПО
                    Номенклатура.ЗакупочнаяЦена УБЫВ)) КАК ПродажиОбороты
        ПО ВложенныйЗапрос.Ссылка = ПродажиОбороты.Номенклатура

В данном запросе вложенный запрос получает пять товаров с самым большим значением поля "ЗакупочнаяЦена", во внешнем запросе полученные товары связываются с регистром продаж, из которого получается информация о продажах. Для ограничения расчета оборотов, в условие таблицы "РегистрНакопления.Продажи.Обороты" также передается список самых дорогих товаров.