Как из двух условны строк в запросе получить одну?

1. user1859418 14.02.24 11:20 Сейчас в теме
Есть запрос вот такого вида:

ВЫБРАТЬ РАЗЛИЧНЫЕ
	Сотрудники.Ссылка КАК Ссылка,
	ФизическиеЛица.ФИО КАК ФИО,
	ФизическиеЛица.ДатаРождения КАК ДатаРождения,
	КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
	КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
	ВЫБОР
		КОГДА ЕСТЬNULL(ПриемНаРаботуСпискомСотрудники.ДатаПриема, 0) = 0
			ТОГДА ПриемНаРаботу.ДатаПриема
		ИНАЧЕ ПриемНаРаботуСпискомСотрудники.ДатаПриема
	КОНЕЦ КАК ДатаПриема,
	ФизическиеЛицаКонтактнаяИнформация.Представление КАК АдресПоПрописке,
	ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента,
	ДокументыФизическихЛиц.Номер КАК Номер,
	ДокументыФизическихЛиц.Серия КАК Серия,
	ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
	ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
	ВоинскийУчет.ОтношениеКВоинскойОбязанности КАК ОтношениеКВоинскойОбязанности,
	ВоинскийУчет.Звание КАК Звание,
	ВоинскийУчет.Состав КАК Состав,
	ВоинскийУчет.КатегорияЗапаса КАК КатегорияЗапаса,
	ВоинскийУчет.ВУС КАК ВУС,
	ВоинскийУчет.Годность КАК Годность,
	ВоинскийУчет.Военкомат КАК Военкомат,
	ВоинскийУчет.ОтношениеКВоинскомуУчету КАК ОтношениеКВоинскомуУчету
ИЗ
	Справочник.Сотрудники КАК Сотрудники
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛиц
			ПО (ДокументыФизическихЛиц.Физлицо = ФизическиеЛица.Ссылка)
			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
			ПО ФизическиеЛица.Ссылка = ФизическиеЛицаКонтактнаяИнформация.Ссылка
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВоинскийУчет.СрезПоследних КАК ВоинскийУчет
			ПО ФизическиеЛица.Ссылка = ВоинскийУчет.ФизическоеЛицо
		ПО Сотрудники.ФизическоеЛицо = ФизическиеЛица.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу КАК ПриемНаРаботу
		ПО Сотрудники.Ссылка = ПриемНаРаботу.Сотрудник
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуСписком.Сотрудники КАК ПриемНаРаботуСпискомСотрудники
		ПО Сотрудники.Ссылка = ПриемНаРаботуСпискомСотрудники.Сотрудник
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.Увольнение КАК Увольнение
		ПО Сотрудники.Ссылка = Увольнение.Сотрудник
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.УвольнениеСписком.Сотрудники КАК УвольнениеСпискомСотрудники
		ПО Сотрудники.Ссылка = УвольнениеСпискомСотрудники.Сотрудник
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
		ПО Сотрудники.Ссылка = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
ГДЕ
	ЕСТЬNULL(Увольнение.ДатаУвольнения, 0) = 0
	И ЕСТЬNULL(УвольнениеСпискомСотрудники.ДатаУвольнения, 0) = 0
	И ПриемНаРаботу.Проведен = ИСТИНА
	И ФизическиеЛицаКонтактнаяИнформация.Вид = &Вид
	И ДокументыФизическихЛиц.ВидДокумента В(&МассивВидыВоенников)
	И КадроваяИсторияСотрудниковСрезПоследних.Подразделение В(&МассивПодразделений)

УПОРЯДОЧИТЬ ПО
	Подразделение,
	ФИО
Показать


Как сделать так что бы отбиралась строка либо из параметра МассивВидыВоенников, либо из предопределённого значения и при этом не было строк дублей с разным видом документа?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 14.02.24 11:42 Сейчас в теме
(1)
.........
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛиц
ПО (ДокументыФизическихЛиц.Физлицо = ФизическиеЛица.Ссылка)
И ДокументыФизическихЛиц.ВидДокумента = ЗНАЧЕНИЕ(Справочник.ВидыДокументовФизическихЛиц.ПаспортРФ)
........
3. Vadim_174 2 14.02.24 12:14 Сейчас в теме
Попробуйте так, только перечисление поправьте наименование, у вас наверное другое, наугад написал. Выберется какая то одна строка, должна по крайней мере
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Сотрудники.Ссылка КАК Ссылка,
    ФизическиеЛица.ФИО КАК ФИО,
    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
    КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
    КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
    ВЫБОР
        КОГДА ЕСТЬNULL(ПриемНаРаботуСпискомСотрудники.ДатаПриема, 0) = 0
            ТОГДА ПриемНаРаботу.ДатаПриема
        ИНАЧЕ ПриемНаРаботуСпискомСотрудники.ДатаПриема
    КОНЕЦ КАК ДатаПриема,
    ФизическиеЛицаКонтактнаяИнформация.Представление КАК АдресПоПрописке,
    Максимум(ЕСТЬNULL(ДокументыФизическихЛиц.ВидДокумента, Значение(Перечисление.ВидыДокументовФизическихЛиц))) КАК ВидДокумента,
    ДокументыФизическихЛиц.Номер КАК Номер,
    ДокументыФизическихЛиц.Серия КАК Серия,
    ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
    ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
    ВоинскийУчет.ОтношениеКВоинскойОбязанности КАК ОтношениеКВоинскойОбязанности,
    ВоинскийУчет.Звание КАК Звание,
    ВоинскийУчет.Состав КАК Состав,
    ВоинскийУчет.КатегорияЗапаса КАК КатегорияЗапаса,
    ВоинскийУчет.ВУС КАК ВУС,
    ВоинскийУчет.Годность КАК Годность,
    ВоинскийУчет.Военкомат КАК Военкомат,
    ВоинскийУчет.ОтношениеКВоинскомуУчету КАК ОтношениеКВоинскомуУчету
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛиц
            ПО (ДокументыФизическихЛиц.Физлицо = ФизическиеЛица.Ссылка)
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
            ПО ФизическиеЛица.Ссылка = ФизическиеЛицаКонтактнаяИнформация.Ссылка
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВоинскийУчет.СрезПоследних КАК ВоинскийУчет
            ПО ФизическиеЛица.Ссылка = ВоинскийУчет.ФизическоеЛицо
        ПО Сотрудники.ФизическоеЛицо = ФизическиеЛица.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу КАК ПриемНаРаботу
        ПО Сотрудники.Ссылка = ПриемНаРаботу.Сотрудник
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуСписком.Сотрудники КАК ПриемНаРаботуСпискомСотрудники
        ПО Сотрудники.Ссылка = ПриемНаРаботуСпискомСотрудники.Сотрудник
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Увольнение КАК Увольнение
        ПО Сотрудники.Ссылка = Увольнение.Сотрудник
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.УвольнениеСписком.Сотрудники КАК УвольнениеСпискомСотрудники
        ПО Сотрудники.Ссылка = УвольнениеСпискомСотрудники.Сотрудник
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
        ПО Сотрудники.Ссылка = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
ГДЕ
    ЕСТЬNULL(Увольнение.ДатаУвольнения, 0) = 0
    И ЕСТЬNULL(УвольнениеСпискомСотрудники.ДатаУвольнения, 0) = 0
    И ПриемНаРаботу.Проведен = ИСТИНА
    И ФизическиеЛицаКонтактнаяИнформация.Вид = &Вид
    И ДокументыФизическихЛиц.ВидДокумента В(&МассивВидыВоенников)
    И КадроваяИсторияСотрудниковСрезПоследних.Подразделение В(&МассивПодразделений)
Сгруппировать ПО
    Сотрудники.Ссылка КАК Ссылка,
    ФизическиеЛица.ФИО КАК ФИО,
    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
    КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
    КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
    ВЫБОР
        КОГДА ЕСТЬNULL(ПриемНаРаботуСпискомСотрудники.ДатаПриема, 0) = 0
            ТОГДА ПриемНаРаботу.ДатаПриема
        ИНАЧЕ ПриемНаРаботуСпискомСотрудники.ДатаПриема
    КОНЕЦ КАК ДатаПриема,
    ФизическиеЛицаКонтактнаяИнформация.Представление КАК АдресПоПрописке,
    ДокументыФизическихЛиц.Номер КАК Номер,
    ДокументыФизическихЛиц.Серия КАК Серия,
    ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
    ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
    ВоинскийУчет.ОтношениеКВоинскойОбязанности КАК ОтношениеКВоинскойОбязанности,
    ВоинскийУчет.Звание КАК Звание,
    ВоинскийУчет.Состав КАК Состав,
    ВоинскийУчет.КатегорияЗапаса КАК КатегорияЗапаса,
    ВоинскийУчет.ВУС КАК ВУС,
    ВоинскийУчет.Годность КАК Годность,
    ВоинскийУчет.Военкомат КАК Военкомат,
    ВоинскийУчет.ОтношениеКВоинскомуУчету КАК ОтношениеКВоинскомуУчет
УПОРЯДОЧИТЬ ПО
    Подразделение,
    ФИО
Показать
Оставьте свое сообщение

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