Каталог решений - Тонкости СКД: Особенности отбора при использовании временных таблиц

Тонкости СКД: Особенности отбора при использовании временных таблиц

Тонкости СКД: Особенности отбора при использовании временных таблиц

В наличии

При создании запросов мы часто используем временные таблицы. Недавно столкнулся с тем что запрос в СКД не совсем корректно отрабатывал.

Категория:

Описание

При создании запросов мы часто используем временные таблицы. Недавно столкнулся с тем что запрос в СКД не совсем корректно отрабатывал.

Рассмотрим пакетный запрос:

ВЫБРАТЬ
   
ФизическиеЛица.Ссылка КАК Ссылка,
   
ФизическиеЛица.Пол
ПОМЕСТИТЬ ВТ
ИЗ
   
Справочник.ФизическиеЛица КАК ФизическиеЛица

ИНДЕКСИРОВАТЬ ПО
   
Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   
ФизическиеЛица.Ссылка КАК Ссылка,
   
ФизическиеЛица.Пол КАК Пол,
    isnull(
ВложенныйЗапрос.Количество,0) КАК Количество
{ВЫБРАТЬ
    Ссылка.*,
   
Пол.*,
   
Количество}
ИЗ
   
Справочник.ФизическиеЛица КАК ФизическиеЛица
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           
КОЛИЧЕСТВО(ВТ.Ссылка) КАК Количество
       
ИЗ
           
ВТ КАК ВТ) КАК ВложенныйЗапрос
        ПО (ИСТИНА)
{ГДЕ
    ФизическиеЛица.Ссылка.*,
   
ФизическиеЛица.Пол.*,
   
ФизическиеЛица.ИНН}

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

Когда мы не накладываем никаких отборов, то все работает замечательно(рис.1).


                                         Рис.1
Но если нам захочется добавить отбор по сотруднику или по полу

                                                            Рис.2

То получится не совсем то что мы ожидаем. В поле «Количество» получаем 4, хотя по идее там должно быть 48(рис.3) , т.к. отбор мы осуществляем в последней таблице.

has been added to your cart:
Оформление заказа