|
Соединить два регистра сведений по периодам. | ☑ | ||
---|---|---|---|---|
0
Beduin
01.12.17
✎
10:16
|
Есть два регистра сведений из зарплаты типовой.
РаботникиОрганизаций и ПлановыеНачисленияРаботниковОрганизаций. В одном отражаются кадровые движения, в другом виды расчета по сотруднику. Можно ли с помощью запроса при любом кадровом движении показывать активные начисления сотрудника. например 01.01.2017 Кадровое перемещение ВидРасчета1 10000 01.01.2017 Кадровое перемещение ВидРасчета2 3000 01.02.2017 Кадровое перемещение ВидРасчета1 10000 01.03.2017 Кадровое перемещение ВидРасчета1 5000 01.01.2017 Кадровое перемещение ВидРасчета3 1000 Сделал пока так ВЫБРАТЬ РаботникиОрганизаций.Сотрудник КАК Сотрудник, РаботникиОрганизаций.Период, ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета, ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1 ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних ПО РаботникиОрганизаций.Сотрудник = ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник И (ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Период В (ВЫБРАТЬ МАКСИМУМ(ПлановыеНачисленияРаботниковОрганизаций.Период) ИЗ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизаций ГДЕ ПлановыеНачисленияРаботниковОрганизаций.Сотрудник = РаботникиОрганизаций.Сотрудник И ПлановыеНачисленияРаботниковОрганизаций.Период <= РаботникиОрганизаций.Период)) УПОРЯДОЧИТЬ ПО Сотрудник |
|||
1
3achem
01.12.17
✎
10:21
|
(0) Убери вложенный запрос, сделай временную таблицу, в неё помещаешь плановые начисления с отбором по сотруднику и соединяешь с регистром.
|
|||
2
lopus
01.12.17
✎
10:25
|
По идее еще нужно ПериодЗавершения проверять.
|
|||
3
perester
01.12.17
✎
10:26
|
ОБЪЕДИНИТЬ?
|
|||
4
Beduin
01.12.17
✎
10:28
|
(1) А как мне узнать, на каждую дату какие виды расчета активны. Если использовать срез последних, то я могу снять состояние на дату по активным видам расчета. Но срез последних я могу использовать только на одну дату поступившую в запрос в виде параметра. Поэтому мне надо реализовать свой срез последних. И вот тут проблема. У регистра сведений работникиорганизаций нет вида расчета как измерения. И мне нужно расширить таблицу работников организаций видам расчета
|
|||
5
marriachi
01.12.17
✎
10:30
|
Надо использовать Левое соединение, срез последних не использовать, связь по периоду
|
|||
6
3achem
01.12.17
✎
10:34
|
(4) Получаешь все начисления, потом в отдельной таблицу получаешь активные, в конце всё собираешь.Тебе работникиорганизации нужны только для получения даты кадрового пермещения. Поэтому ты левым соединением складываешь по сотруднику.
|
|||
7
Beduin
01.12.17
✎
10:36
|
(2) Это все проверятся, я для упрощения из запроса лишнее убрал.
|
|||
8
Beduin
01.12.17
✎
10:40
|
(6) Вот в этом и проблема, мне нужно на каждую дату движения по регистру РаботникиОрганизаций получать активные виды расчета. Я не знаю как, если я добавлю список всех видов расчета по сотруднику и расширю таблицу РаботникиОрганизаций, то там будут лишнее. Хотя можно через внутреннее соединение, только те которые равны. Сейчас попробую, напишу если получится.
|
|||
9
3achem
01.12.17
✎
10:42
|
(8) ЕСТЬ NULL
Там простой запрос получается, но с несколькими временными таблицами. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |