Вывести сотрудника только 1 раз

1. user1816391 09.02.23 14:10 Сейчас в теме
Здравствуйте, у сотрудника получилось 2 декретных отпуска одновременно, как вывести сотрудника только 1 раз (т.е по последней его дате "ДатаОкончания")?

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

СГРУППИРОВАТЬ ПО
	СостоянияСотрудниковСрезПоследних.Сотрудник,
	СостоянияСотрудниковСрезПоследних.Состояние,
	КадроваяИсторияСотрудниковСрезПоследних.Подразделение,
	КадроваяИсторияСотрудниковСрезПоследних.СЭ_ТипПроизводственногоПерсонала,
	КадроваяИсторияСотрудниковСрезПоследних.СЭ_КатегорияРаботника,
	ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения,
	ОтпускПоУходуЗаРебенком.ДатаНачала,
	ВозвратИзОтпускаПоУходуЗаРебенком.ДатаВозврата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_ДоВыхода.ДатаНачала КАК ДатаНачала,
	ВТ_ДоВыхода.ДатаОкончания КАК ДатаОкончания,
	ВТ_ДоВыхода.Сотрудник КАК Сотрудник,
	ВТ_ДоВыхода.Состояние КАК Состояние,
	ВТ_ДоВыхода.Подразделение КАК Подразделение,
	ВТ_ДоВыхода.СЭ_ТипПроизводственногоПерсонала КАК СЭ_ТипПроизводственногоПерсонала,
	ВТ_ДоВыхода.СЭ_КатегорияРаботника КАК СЭ_КатегорияРаботника,
	ВТ_ДоВыхода.ДатаУвольнения КАК ДатаУвольнения,
	ВТ_ДоВыхода.ДатаВозврата КАК ДатаВозврата
ИЗ
	ВТ_ДоВыхода КАК ВТ_ДоВыхода
ГДЕ
	(ВТ_ДоВыхода.ДатаОкончания < &Дата
				И ВТ_ДоВыхода.ДатаВозврата ЕСТЬ NULL
			ИЛИ ВТ_ДоВыхода.ДатаОкончания > &Дата
				И ВТ_ДоВыхода.ДатаВозврата < &Дата)
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Prikum 3 10.02.23 14:12 Сейчас в теме
(1)
у сотрудника получилось 2 декретных отпуска одновременно

Как это? в одном периоде 2 отпуска? Или отпуск один, просто его исправляли по какой либо причине?
3. Prikum 3 10.02.23 14:13 Сейчас в теме
(1)
как вывести сотрудника только 1 раз

Ну и посмотреть отличие левого соединения от внутреннего
Оставьте свое сообщение

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