Вопрос по формированию запроса в Консоли 1С.
Доброго времени суток.Пользователи Infostart,подскажите пожалуйста.Сейчас смотрю уволенных сотрудников. Мне помогли сделать запрос,но в конце у меня появляется 3-4 записи об одном человеке.Подскажите,можно ли сделать так, что бы одна ФИО не могла более 1 раза появляться в конце,или что-бы оставалась только запись о последнем увольнении.
ВЫБРАТЬ
ТекущиеКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
ТекущиеКадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения
ИЗ
РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ГДЕ ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения <> ДАТАВРЕМЯ(1,1,1)
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьПо теме из базы знаний
Найденные решения
(5)Тогда так:
Добавить в выборку физлицо сотрудника.
Поместить данные исходного запроса во временную таблицу Т1.
В следующем запросе сгруппировать по физлицу и максимальным датам, поместить во временную таблицу Т2.
В следующем запросе выбрать данные из Т2, внутреннее соединение с Т1 по физлицу и датам, и из Т1 взять сотрудника.
Если нужен именно сотрудник в результате.
Добавить в выборку физлицо сотрудника.
Поместить данные исходного запроса во временную таблицу Т1.
В следующем запросе сгруппировать по физлицу и максимальным датам, поместить во временную таблицу Т2.
В следующем запросе выбрать данные из Т2, внутреннее соединение с Т1 по физлицу и датам, и из Т1 взять сотрудника.
Если нужен именно сотрудник в результате.
(7)Возможно, вам хватит этого:
ВЫБРАТЬ
ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК ФИО,
МАКСИМУМ(ТекущиеКадровыеДанныеСотрудников.ДатаПриема) КАК ДатаПриема,
МАКСИМУМ(ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения) КАК ДатаУвольнения
ИЗ
РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ГДЕ
ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения <> ДАТАВРЕМЯ(1,1,1)
СГРУППИРОВАТЬ ПО
ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
АВТОУПОРЯДОЧИВАНИЕ
Показать
в итоге остановился на этом
ВЫБРАТЬ
ДанныеДляПодбораСотрудников.ФизическоеЛицо КАК ФИО,
МАКСИМУМ(ДанныеДляПодбораСотрудников.Начало)КАК Начало,
МАКСИМУМ(ДанныеДляПодбораСотрудников.Окончание)КАК Окончание,
МАКСИМУМ(ДанныеДляПодбораСотрудников.ПометкаУдаления)КАК ПометкаУдаления
ИЗ
РегистрСведений.ДанныеДляПодбораСотрудников КАК ДанныеДляПодбораСотрудников
ГДЕ
ДанныеДляПодбораСотрудников.Начало <> ДАТАВРЕМЯ(1,1,1)И
ДанныеДляПодбораСотрудников.Окончание <> ДАТАВРЕМЯ(1,1,1)
СГРУППИРОВАТЬ ПО
ДанныеДляПодбораСотрудников.ФизическоеЛицо
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5)Тогда так:
Добавить в выборку физлицо сотрудника.
Поместить данные исходного запроса во временную таблицу Т1.
В следующем запросе сгруппировать по физлицу и максимальным датам, поместить во временную таблицу Т2.
В следующем запросе выбрать данные из Т2, внутреннее соединение с Т1 по физлицу и датам, и из Т1 взять сотрудника.
Если нужен именно сотрудник в результате.
Добавить в выборку физлицо сотрудника.
Поместить данные исходного запроса во временную таблицу Т1.
В следующем запросе сгруппировать по физлицу и максимальным датам, поместить во временную таблицу Т2.
В следующем запросе выбрать данные из Т2, внутреннее соединение с Т1 по физлицу и датам, и из Т1 взять сотрудника.
Если нужен именно сотрудник в результате.
(7)Возможно, вам хватит этого:
ВЫБРАТЬ
ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК ФИО,
МАКСИМУМ(ТекущиеКадровыеДанныеСотрудников.ДатаПриема) КАК ДатаПриема,
МАКСИМУМ(ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения) КАК ДатаУвольнения
ИЗ
РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ГДЕ
ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения <> ДАТАВРЕМЯ(1,1,1)
СГРУППИРОВАТЬ ПО
ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
АВТОУПОРЯДОЧИВАНИЕ
Показать
а срез последних не пробовали?
ВЫБРАТЬ
ТекущиеКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
ТекущиеКадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения
ИЗ
РегистрСведений.ТекущиеКадровыеДанныеСотрудников.СрезПоследних КАК ТекущиеКадровыеДанныеСотрудников
ГДЕ ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения <> ДАТАВРЕМЯ(1,1,1)
АВТОУПОРЯДОЧИВАНИЕ
Показать
в итоге остановился на этом
ВЫБРАТЬ
ДанныеДляПодбораСотрудников.ФизическоеЛицо КАК ФИО,
МАКСИМУМ(ДанныеДляПодбораСотрудников.Начало)КАК Начало,
МАКСИМУМ(ДанныеДляПодбораСотрудников.Окончание)КАК Окончание,
МАКСИМУМ(ДанныеДляПодбораСотрудников.ПометкаУдаления)КАК ПометкаУдаления
ИЗ
РегистрСведений.ДанныеДляПодбораСотрудников КАК ДанныеДляПодбораСотрудников
ГДЕ
ДанныеДляПодбораСотрудников.Начало <> ДАТАВРЕМЯ(1,1,1)И
ДанныеДляПодбораСотрудников.Окончание <> ДАТАВРЕМЯ(1,1,1)
СГРУППИРОВАТЬ ПО
ДанныеДляПодбораСотрудников.ФизическоеЛицо
АВТОУПОРЯДОЧИВАНИЕ
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот