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