Получение двух последних записей сотрудника

1. Евгений Онегин 22.05.18 08:41 Сейчас в теме
Всем привет.
Хочу получить две последние записи сотрудника в регистре сведений Кадровая история сотрудников? Как можно это сделать запросом?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Евгений Онегин 22.05.18 08:49 Сейчас в теме
я б хотел получить все эти данные в одной строке. Не знаю как это сделать.
3. catena 110 22.05.18 08:58 Сейчас в теме
Выбрать две последние в тз, соединить саму с собой по неравенству. Вывести в одну строку.
6. Евгений Онегин 22.05.18 09:04 Сейчас в теме
(3) могли б показать пример, а то так я не догоняю :)
4. yalex9 106 22.05.18 08:58 Сейчас в теме
ВЫБРАТЬ ПЕРВЫЕ 2
..............................
УПОРЯДОЧИТЬ ПО
Период УБЫВ
5. catena 110 22.05.18 08:59 Сейчас в теме
Выбрать первые 2 поместить ТЗ_две из Регистр упорядочить по Период;
Выбрать * из ТЗ_две1 левое соединение ТЗ_две2 по ТЗ_две1.Период<>ТЗ_две2.Период
7. Евгений Онегин 22.05.18 09:06 Сейчас в теме
(5) хотелось бы глянуть пример именно в виде запроса.
8. catena 110 22.05.18 09:07 Сейчас в теме
(7)А что у меня в (5), если не запрос?
9. Евгений Онегин 22.05.18 09:10 Сейчас в теме
(8) кс ожалению, пока не хватает опыта чтоб по этим строчкам понять что да как ))
10. catena 110 22.05.18 09:12 Сейчас в теме
(9)Скопировать, подставить свой регистр и свои поля? Я даже ткну, куда:

Выбрать первые 2 (ЗДЕСЬ ПЕРЕЧИСЛИТЬ НУЖНЫЕ ПОЛЯ) поместить ТЗ_две из (ТУТ НАЗВАНИЕ РЕГИСТРА) упорядочить по Период;
Выбрать * из ТЗ_две1 левое соединение ТЗ_две2 по ТЗ_две1.Период<>ТЗ_две2.Период
11. lefthander 22.05.18 09:12 Сейчас в теме
(9)скопируйте строки из (5) в конструктор запроса.
12. Евгений Онегин 22.05.18 09:30 Сейчас в теме
(11) вот написал первую часть

"ВЫБРАТЬ ПЕРВЫЕ 2
|	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник,
|	КадроваяИсторияСотрудниковСрезПоследних.Должность,
|	КадроваяИсторияСотрудниковСрезПоследних.Подразделение,
|	КадроваяИсторияСотрудниковСрезПоследних.Период КАК Период
|ПОМЕСТИТЬ ТЗ_две
|ИЗ
|	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
|ГДЕ
|	КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия = &Перемещение
|	И КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = &Сотрудник
|
|УПОРЯДОЧИТЬ ПО
|	Период УБЫВ
Показать


что делать дальше?
13. yalex9 106 22.05.18 09:52 Сейчас в теме
(12) Этот запрос(Срез последних) выберет последние записи конкретного сотрудника и вида события по измерениям должность и подразделение.
У всех полученных записей будет отличаться пара должность/подразделение. Период может совпадать.
может получится 1 запись, а может и несколько.
Так и задумывалось?
14. Евгений Онегин 22.05.18 10:00 Сейчас в теме
(13) Я и регистром сделал и срезом последних, а он мне все возвращает именно последние две записи. А мне нужно каждого сотрудника две последние записи
15. catena 110 22.05.18 11:15 Сейчас в теме
(14)Вы очень расплывчато изъясняетесь. Попробуйте описать задачу, а не придуманный путь решения.
16. Евгений Онегин 22.05.18 13:12 Сейчас в теме
(15) Задача состоит в том, чтоб получить данные о премещенных сотрудниках в таком формате:

Сотрудник / новая должность / Новый отдел / Предыдущая должность / Предыдущий отдел
17. Евгений Онегин 22.05.18 13:15 Сейчас в теме
(15) Все эти данные есть только в регистре сведений Кадровая история сотрудников и чтобы ее выполнить нужно получать две записи каждого сотрудника, чтоб узнавать где он работал до перемещения.
18. catena 110 22.05.18 13:26 Сейчас в теме
Предыдущая должность:
Выбрать 
    Тек.Сотрудник,
    Тек.Должность,
    Пред.Должность как ПредДолжность,
    Тек.Период КАК Период,
    Тек.ПредПериод
из(ВЫБРАТЬ 
    Тек.Сотрудник,
    Тек.Должность,
    Тек.Период КАК Период,
    Максимум(Пред.Период) как ПредПериод
ИЗ
    РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК Тек
    Левое соединение РегистрСведений.КадроваяИсторияСотрудников как Пред 
    по Пред.Сотрудник=Тек.Сотрудник
    и Пред.Период<Тек.Период и Пред.Должность<>Тек.Должность
Сгруппировать по Тек.Физлицо,Тек.Должность,Тек.Период) как Тек
    Левое соединение РегистрСведений.КадроваяИсторияСотрудников как Пред 
    по Пред.Сотрудник=Тек.Сотрудники Пред.Период=Тек.ПредПериод
    
    
Показать
Оставьте свое сообщение

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