|
отчет по начислениям | ☑ | ||
---|---|---|---|---|
0
Johney20
13.05.16
✎
16:49
|
Необходимо создать отчет, который отображает общую сумму осн и доп начислений по каждому сотруднику. Запросом создаю две временные таблицы, в первой "сотрудник", "период регистрации", "Результат" по осн.начислениям, во второй выбираю те же поля, только из доп.начислений. в 3м пакете запросов, выбираю первые два поля из осн.таблицы, естественно связанные с полями по доп.начислениям, а результат рассчитываю, как сумму результатов двух регистров. Период и Сотрудника в итоге я получаю, а колонка с результатом пустая((( Уже голову себе сломала, подскажите, как исправить??(
|
|||
1
Nuobu
13.05.16
✎
16:53
|
Покажи запросы.
|
|||
2
Johney20
13.05.16
✎
17:02
|
Nuobu, Не нашла, как прикрепить файл, это внешний отчет.
ВЫБРАТЬ ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник, СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат ПОМЕСТИТЬ Осн ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций СГРУППИРОВАТЬ ПО ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, ОсновныеНачисленияРаботниковОрганизаций.Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации, ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник, СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат) КАК Результат ПОМЕСТИТЬ Доп ИЗ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций СГРУППИРОВАТЬ ПО ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник, ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Осн.ПериодРегистрации, Осн.Сотрудник КАК Сотрудник, СУММА(Осн.Результат + Доп.Результат) КАК Поле1 ИЗ Осн КАК Осн ЛЕВОЕ СОЕДИНЕНИЕ Доп КАК Доп ПО Осн.ПериодРегистрации = Доп.ПериодРегистрации И Осн.Сотрудник = Доп.Сотрудник СГРУППИРОВАТЬ ПО Осн.ПериодРегистрации, Осн.Сотрудник УПОРЯДОЧИТЬ ПО Сотрудник |
|||
3
Johney20
13.05.16
✎
17:08
|
(1)
|
|||
4
Sabbath
13.05.16
✎
17:09
|
(2) таки предположу что период регистрации разный и возможно его надо привести к одному значению. Насколько я помню у основных начислений начало месяца вообще, а у доп. когда угодно. Но ЗУП я не помню, это вариант. При суммировании не забудь ЕСТЬNULL
|
|||
5
Генератор
13.05.16
✎
17:09
|
а если вдруг есть доп начисление а нет основного? и проверку на null не помешало бы, а то значение + null = null
|
|||
6
Генератор
13.05.16
✎
17:10
|
возможно лучше объединить + сгруппировать
|
|||
7
Nuobu
13.05.16
✎
17:11
|
(2) Нужно пользоваться виртуальными таблицами.
|
|||
8
Johney20
13.05.16
✎
17:14
|
(7) а можно поподробней? я еще стажер просто..(
|
|||
9
Генератор
13.05.16
✎
17:14
|
(7) при выборке из 2-х разных регистров чем они помогут, а из регистров расчета итоговые данные обычно из физических таблиц берут
|
|||
10
Alexandr_U1982
13.05.16
✎
17:15
|
(0)
ВЫБРАТЬ Начисления.Сотрудник, СУММА(Начисления.Результат) КАК Результат ИЗ (ВЫБРАТЬ ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник, ОсновныеНачисленияРаботниковОрганизаций.Результат КАК Результат ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.Организация = &Организация И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник, ДополнительныеНачисленияРаботниковОрганизаций.Результат ИЗ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций ГДЕ ДополнительныеНачисленияРаботниковОрганизаций.Организация = &Организация И ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания) КАК Начисления СГРУППИРОВАТЬ ПО Начисления.Сотрудник |
|||
11
Alexandr_U1982
13.05.16
✎
17:16
|
(2) Левое соединение здесь совершенно не нужно. Нужно использовать объединить
|
|||
12
Генератор
13.05.16
✎
17:17
|
(10) да, но это надо во вложенный или в вт и потом сгруппировать, по задумке тс
|
|||
13
Sabbath
13.05.16
✎
17:17
|
(8) твоей проблеме это в данный момент не поможет :)
Проверь отдельно значения полей, по которым соединяешь, и увидишь, что они различаются (10) а вдруг ей надо с периодами? |
|||
14
Генератор
13.05.16
✎
17:19
|
если уж соединение то полное, но на null каждое поле надо проверять
|
|||
15
Alexandr_U1982
13.05.16
✎
17:19
|
(13) Добавить периоды, убрать отборы если надо
|
|||
16
Alexandr_U1982
13.05.16
✎
17:20
|
(14) Посмотрите как подобные запросы делаются в типовых. Полное соединение никогда не используется. Оно будет работать медленнее чем объединить, да еще и проверку на Null надо добавлять.
|
|||
17
Генератор
13.05.16
✎
17:21
|
(16) я изначально так и предложил
|
|||
18
Johney20
13.05.16
✎
17:21
|
(10) уфф, сейчас попробую
|
|||
19
Sabbath
13.05.16
✎
17:24
|
(15) И еще периоды надо привести к началу месяца, например. Я о том и пишу. А зачем ей соединение, это не знаю. Вдруг так и задумано
|
|||
20
Генератор
13.05.16
✎
17:25
|
(19) а период регистрации вроде изначально к началу месяца приведен
|
|||
21
Sabbath
13.05.16
✎
17:26
|
(20) В доп начислениях, вроде, нет, ЗУПа нет под рукой
|
|||
22
Johney20
13.05.16
✎
17:26
|
(13) Нет же( одинаковые
|
|||
23
Генератор
13.05.16
✎
17:29
|
(21) ну может быть...
|
|||
24
Alexandr_U1982
13.05.16
✎
17:31
|
(20)(21)
В регистре "ОсновныеНачисленияРаботниковОрганизаций" период регистрации приведен к началу месяца, в регистре "ДополнительныеНачисленияРаботниковОрганизаций" - нет. Если в качестве "ДатаНачала" использовать Дату начала месяца, а в качестве "ДатаОкончания" использовать Дату окончания месяца, то периоды не нужно приводить к началу месяца. Лучше один раз задать правильно параметры запроса, чем выполнять функцию преобразования периода для каждой записи регистра. Будет быстрее работать. |
|||
25
Alexandr_U1982
13.05.16
✎
17:32
|
(19)Соединение там используется по "не знанию".
|
|||
26
Johney20
13.05.16
✎
17:33
|
Мне по сути просто сказали сделать так, чтобы были след колонки:
Период регистрации/ Сотрудник/ Результат/ где результат это сумма осн и доп начислений. Может это можно вообще как-то проще реализовать?? |
|||
27
Генератор
13.05.16
✎
17:33
|
(24) если надо сгруппировать в разрезе периодов а параметры за несколько периодов, то все равно преобразовывать
|
|||
28
Alexandr_U1982
13.05.16
✎
17:35
|
(27) Согласен
|
|||
29
Alexandr_U1982
13.05.16
✎
17:37
|
(26)
ВЫБРАТЬ Начисления.ПериодРегистрации, Начисления.Сотрудник, СУММА(Начисления.Результат) КАК Результат ИЗ (ВЫБРАТЬ ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации КАК ПериодРегистрации, ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник, ОсновныеНачисленияРаботниковОрганизаций.Результат КАК Результат ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.Организация = &Организация И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ), ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник, ДополнительныеНачисленияРаботниковОрганизаций.Результат ИЗ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций ГДЕ ДополнительныеНачисленияРаботниковОрганизаций.Организация = &Организация И ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания) КАК Начисления СГРУППИРОВАТЬ ПО Начисления.Сотрудник, Начисления.ПериодРегистрации УПОРЯДОЧИТЬ ПО Начисления.ПериодРегистрации, Начисления.Сотрудник.Наименование Проще некуда |
|||
30
GANR
13.05.16
✎
19:30
|
(0) Создать? А уверена, что типового нет с нужным функционалом?
|
|||
31
Johney20
14.05.16
✎
00:56
|
(30) Ну это мне заданька, я стажеруюсь) даже если и есть типовая, мне в любом случае надо самой написать)
|
|||
32
igni1
14.05.16
✎
09:52
|
а запрос из Расчетного листка посмотреть?
|
|||
33
hhhh
14.05.16
✎
12:24
|
(32) убил
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |