Как выбрать первую запись для правой таблицы в запросе?

1. Artemass 09.05.23 18:54 Сейчас в теме
Здравствуйте!
Вопрос наверное простой, но не могу никак разобраться. Подскажите пожалуйста. Как написать запрос для отчета чтобы для справочника номенклатуры выводить первую найденную запись справочника номенклатура поставщика или ничего не выводить если не найдено. Создаю в СКД такой запрос:
ВЫБРАТЬ
	НоменклатураОрганизации.Ссылка КАК НоменклатураСсылка,
	НоменклатураПоставщиков.Артикул КАК АртикулПоставщика,
	НоменклатураПоставщиков.Владелец КАК Поставщик
ИЗ
	Справочник.Номенклатура КАК НоменклатураОрганизации
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураПоставщиков КАК НоменклатураПоставщиков
		ПО (НоменклатураОрганизации.Ссылка = НоменклатураПоставщиков.Номенклатура)
			И (НоменклатураПоставщиков.ПометкаУдаления = ЛОЖЬ)
ГДЕ
	НоменклатураОрганизации.ЭтоГруппа = ЛОЖЬ
Показать

Но если для номенклатуры есть несколько номенклатур поставщиков, то они выводятся все. А нужно только одно
По теме из базы знаний
Найденные решения
3. spacecraft 09.05.23 20:01 Сейчас в теме
(1) одна номенклатура из всех поставщиков, или по одной номенклатуре разных поставщиков?
Если тупо одна номенклатура сопоставить с одной номенклатурой любого поставщика, то просто максимум по ссылке поставщика. И просто в выбранные поля выбирать нужные поля по этой ссылке.
ВЫБРАТЬ
	НоменклатураОрганизации.Ссылка КАК НоменклатураСсылка,
	МАКСИМУМ(НоменклатураПоставщиков.Ссылка) КАК НоменклатураПоставщика
ИЗ
	Справочник.Номенклатура КАК НоменклатураОрганизации
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураПоставщиков КАК НоменклатураПоставщиков
		ПО НоменклатураОрганизации.Ссылка = НоменклатураПоставщиков.Номенклатура
			И (НоменклатураПоставщиков.ПометкаУдаления = ЛОЖЬ)
ГДЕ
	НоменклатураОрганизации.ЭтоГруппа = ЛОЖЬ

СГРУППИРОВАТЬ ПО
	НоменклатураОрганизации.Ссылка
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 09.05.23 19:57 Сейчас в теме
(1)если совсем просто и с нюансами, то так:

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

СГРУППИРОВАТЬ ПО
    НоменклатураОрганизации.Ссылка,
    НоменклатураПоставщиков.Владелец
Показать
5. Artemass 09.05.23 20:42 Сейчас в теме
(2) Так не работает. Если в справочнике номенклатура поставщиков у одного поставщика две записи на одну номенклатуру организации то получим две записи, а не одну.
3. spacecraft 09.05.23 20:01 Сейчас в теме
(1) одна номенклатура из всех поставщиков, или по одной номенклатуре разных поставщиков?
Если тупо одна номенклатура сопоставить с одной номенклатурой любого поставщика, то просто максимум по ссылке поставщика. И просто в выбранные поля выбирать нужные поля по этой ссылке.
ВЫБРАТЬ
	НоменклатураОрганизации.Ссылка КАК НоменклатураСсылка,
	МАКСИМУМ(НоменклатураПоставщиков.Ссылка) КАК НоменклатураПоставщика
ИЗ
	Справочник.Номенклатура КАК НоменклатураОрганизации
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураПоставщиков КАК НоменклатураПоставщиков
		ПО НоменклатураОрганизации.Ссылка = НоменклатураПоставщиков.Номенклатура
			И (НоменклатураПоставщиков.ПометкаУдаления = ЛОЖЬ)
ГДЕ
	НоменклатураОрганизации.ЭтоГруппа = ЛОЖЬ

СГРУППИРОВАТЬ ПО
	НоменклатураОрганизации.Ссылка
Показать
6. Artemass 09.05.23 20:43 Сейчас в теме
(3) Спасибо, то что надо!
4. starjevschik 09.05.23 20:23 Сейчас в теме
Чтобы получить первую запись, нужно сначала понять, что есть "первая". Критерий сортировки.
Потом, глядя на этот критерий, можно будет придумать пути решения задачи.
А в такой постановке, как в исходнике, задача не решается, не хватает данных.
7. Artemass 09.05.23 20:45 Сейчас в теме
(4) Первая в данном случае значит любая из найденных
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот