0
devochka_1c
28.10.15
✎
10:47
|
Добрый день.
Конфигурация 1С УПП.
Требуется получить периоды работы сотрудников на разных должностях (и в разных подразделениях).
Пишу запрос:
ВЫБРАТЬ
РаботникиОрганизаций.Сотрудник КАК Сотрудник,
РаботникиОрганизаций.Период КАК Период,
МИНИМУМ(ЕСТЬNULL(РаботникиОрганизацийСледующаяЗапись.Период, &НаДату)) КАК ПериодСледующий,
РаботникиОрганизаций.ПериодЗавершения КАК ПериодЗавершения,
РаботникиОрганизаций.Должность КАК Должность,
РаботникиОрганизаций.ДолжностьЗавершения КАК ДолжностьЗавершения,
РаботникиОрганизаций.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния,
РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения КАК ПричинаИзмененияСостоянияЗавершения,
РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации
ИЗ
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизацийСледующаяЗапись
ПО РаботникиОрганизаций.Сотрудник = РаботникиОрганизацийСледующаяЗапись.Сотрудник
И РаботникиОрганизаций.Период < РаботникиОрганизацийСледующаяЗапись.Период
И (РаботникиОрганизацийСледующаяЗапись.Период <= &НаДату)
ГДЕ
РаботникиОрганизаций.Период <= &НаДату
СГРУППИРОВАТЬ ПО
РаботникиОрганизаций.Сотрудник,
РаботникиОрганизаций.Период,
РаботникиОрганизаций.ПериодЗавершения,
РаботникиОрганизаций.Должность,
РаботникиОрганизаций.ДолжностьЗавершения,
РаботникиОрганизаций.ПричинаИзмененияСостояния,
РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения,
РаботникиОрганизаций.ПодразделениеОрганизации
Он возвращает периоды работы все, даже если были перемещения по изменению зп в должности и подразделенпи - получается несколько одинаковых строк, отличающихся только периодами.
Как учесть именно периоды работы на разных должностях и в разных подразделениях (свернуть одинаковые строки с изменением периода)?
|
|
3
MUXACb
28.10.15
✎
13:37
|
(0) В соединении Добавьте:
И (РаботникиОрганизаций.Должность <> РаботникиОрганизацийСледующаяЗапись.Должность ИЛИ РаботникиОрганизаций.ПодразделениеОрганизации <> РаботникиОрганизацийСледующаяЗапись.ПодразделениеОрганизации)
и не забудьте вычесть из "РаботникиОрганизацийСледующаяЗапись.Период" день для корректного значения ПериодСледующий
но ваш запрос не будет правильно работать, если заполнены данные по завершению
|
|