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