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