Имя: Пароль:
1C
1С v8
Помогите построить запрос
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 КАК Таб
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТаблицаПриемов.Сотрудник,
   ТаблицаПриемов.Документ,
   ТаблицаПриемов.Дата,
   МИНИМУМ(ТаблицаДат.Дата) КАК ДатаУвольнения
ПОМЕСТИТЬ ТаблицаПриемовСДатамиУвольнений
ИЗ
   ТаблицаПриемов КАК ТаблицаПриемов
       ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаУвольнений КАК ТаблицаДат
       ПО ТаблицаПриемов.Сотрудник = ТаблицаДат.Сотрудник
           И ТаблицаПриемов.Дата < ТаблицаДат.Дата

СГРУППИРОВАТЬ ПО
   ТаблицаПриемов.Сотрудник,
   ТаблицаПриемов.Документ,
   ТаблицаПриемов.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Приемы.Сотрудник,
   Приемы.Документ,
   Приемы.Дата КАК Дата,
   Приемы.ДатаУвольнения,
   ТаблицаУвольнений.Документ КАК ДокументУвольнения
ИЗ
   ТаблицаПриемовСДатамиУвольнений КАК Приемы
       ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаУвольнений КАК ТаблицаУвольнений
       ПО Приемы.Сотрудник = ТаблицаУвольнений.Сотрудник
           И Приемы.ДатаУвольнения = ТаблицаУвольнений.Дата

УПОРЯДОЧИТЬ ПО
   Дата
2 aleks-id
 
03.07.12
13:50
итить-колотить... а нафига столько ВТ???
3 0_Serg_0
 
03.07.12
14:15
(1)
и на совместителях работает??О_о
4 Adept
 
03.07.12
17:58
(2)(3) Спокойно, это тестовый пример ...