Вроде простой запрос

Помогите разобраться. Имеем запрос, в котором справочник связан с собственной табличной частью вложенным запросом:

 
ВЫБРАТЬ

Проекты.Ссылка КАК Монтаж,

Проекты.Приоритет КАК Приоритет,

ВложенныйЗапросГИС.ГИС КАК ГИС

ИЗ Справочник.Проекты КАК Проекты

ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1

ПроектыСписокИТР.ФизЛицо КАК ГИС,

ПроектыСписокИТР.Ссылка КАК Монтаж1

ИЗ Справочник.Проекты.СписокИТР КАК ПроектыСписокИТР

ГДЕ ПроектыСписокИТР.Роль.Наименование = &ГИС
УПОРЯДОЧИТЬ ПО ГИС) КАК ВложенныйЗапросГИС

ПО Проекты.Ссылка = ВложенныйЗапросГИС.Монтаж1
УПОРЯДОЧИТЬ ПО

Приоритет, Монтаж

 
Из табличной части нужно получить одну запись определённого вида. Вид задаётся параметром &ГИС. Данный запрос не работает. Но путём изменения количества в предложении “ВЫБРАТЬ ПЕРВЫЕ 1” подзапроса, выяснилось, что запрос начинает работать при различных значениях. Какие-то записи выбираются при 3, какие-то при 14.
Пример:

ПЕРВЫЕ 1

Выборка:

Монтаж1 1 <пусто>

Монтаж2 2 <пусто>

Монтаж3 3 <пусто>

 
ПЕРВЫЕ 3

Выборка:

Монтаж1 1 <пусто>

Монтаж2 2 Петров

Монтаж3 3 <пусто>

 
ПЕРВЫЕ 7

Выборка:

Монтаж1 1 Иванов

Монтаж2 2 Петров

Монтаж3 3 <пусто>

 
ПЕРВЫЕ 14

Выборка:

Монтаж1 1 Иванов

Монтаж2 2 Петров

Монтаж3 3 Сидоров

 
В чём тут проблема?

Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Головаченко Дима
Головаченко Дима
11 лет назад

Вы наверное хотели получить одну запись из ТЧ КАЖДОГО справочника, но вместо этого написали запрос, который выдает одну запись из ВСЕХ ТЧ ВСЕХ справочников. и какую ссылку выведет – для того и отобразится.
Для написания нужного запроса вам необходимо найти в ТЧ поле, которое и будет определять уникальность записи, среди других подобных. Если же условие, которое вы задали вернет вам одну запись из ТЧ в любом случае, тогда конструкцию ПЕРВЫЕ использовать не надо.

Головаченко Дима
Головаченко Дима
11 лет назад

Связывает, но…
Конструкция ПЕРВЫЕ 1 (к примеру) для вложенного запроса всегда вернет ОДНУ запись. Какая она будет зависит от условий, но она всегда для этого случая будет одна.
А вам надо для каждой ТЧ каждого элемента справочника выбрать одну строку.
Разницу улавливаете?