![]() |
|
Среднее в СКД | ☑ | ||
---|---|---|---|---|
0
gul_Sayan
25.06.22
✎
03:01
|
Что-то не корректно считается среднее в СКД. Если во всех строках (4) одна сумма то выдает корректно, а вот если разная то нет например есть 2 строки с суммой 10500 и 2 с 42000 а среднее за место 26250 выдает 21000. Из-за чего это может происходить? И как заставить учитывать пустые значения в расчете среднего как 0?
|
|||
1
gul_Sayan
25.06.22
✎
03:14
|
Да выдаю подробнее.
Формируется отчет средняя ЗП, в разрезе видов начислений. При этом нужно получить сумму всех начислений по сотруднику и средние значения по должностям и подразделениям как для различных видов начислений так для суммы. В ресурсах 2 поля по результату сумма по сотруднику и среднее по видам начислений должностям, подразделениям и общее. Но даже сумма по сотруднику считается не корректно. Например у сотрудника в этом месяце всего 2 начисления 10500 и 10750 а в сумму выдает 42500. Про среднее уже писал. Что-то я совсем запутался. |
|||
2
gul_Sayan
25.06.22
✎
03:27
|
Ну с суммой разобрался, она в ячейку с начислением отображала среднее, так как у человека было 2 строки начислений по этому виду расчета.
|
|||
3
gul_Sayan
25.06.22
✎
03:31
|
Просуммировал начисления в запросе все встало на место.
|
|||
4
gul_Sayan
25.06.22
✎
03:40
|
Осталось выяснить как подставить 0 если у сотрудника в этом месяце этого начисления не было.
|
|||
5
Asmody
25.06.22
✎
03:42
|
(4) строка с 0 в результате запроса есть?
|
|||
6
gul_Sayan
25.06.22
✎
06:19
|
(5) нет этих строк нет совсем. Т.е. получается что по видам расчета нужно итог по формуле сумма по виду расчета / на количество строк? Где количество считать по группировке по которой хочу получить результат? И как это выглядит? ВычислитьВыражение("Сумма(Результат)", "Подразделение")/ВычислитьВыражение("Количество(Сотрудник)", "Подразделение")? Выдает ту же ошибку, т.е. учитывает только заполненные строки, а вот как посчитать все для колонок с видом расчета?
|
|||
7
gul_Sayan
27.06.22
✎
13:50
|
А как запросом дополнить строки видов расчета чтобы у каждого сотрудника были все виды расчета, пусть и с 0?
|
|||
8
Ryzeman
27.06.22
✎
14:01
|
(7) Если у тебя запрос по виртуальной таблице, кури МетодДополнения, если нет - то ЕСТЬNULL(ТвояТаблица.ТвоёЗначение, 0)
|
|||
9
gul_Sayan
27.06.22
✎
14:23
|
(8) с дополнением сталкивался только с периодами, а вот как дополнить начисления сотруднику с 0 если у него этого начисления в этом месяце нет, полный список начислений получил, также как и начисления сотрудника, а вот как дополнить недостающими начислениями не знаю.
|
|||
10
Ryzeman
27.06.22
✎
14:25
|
(9) Выбери месяца, как периоды и левым соединением привяжи к ним свои начисления. Ты же в любом случае за какое то конечное количество месяцев свой отчёт делаешь? Если за любое то тут немножко усложнится алгоритм - надо бубет отдельно найти первый и последний месяц, а потом уже выбрать все периоды между ними
|
|||
11
gul_Sayan
27.06.22
✎
14:34
|
(10)основная выборка идет по регистру расчета, а не по виртуальным таблицам.
|
|||
12
Ryzeman
27.06.22
✎
14:44
|
А я тебе и не про виртуальные таблицы говорю. В запросе свою выборку по дате привяжи к таблице периодов левым соединением. То есть у тебя левая таблица будет Период | Сотрудник, правая - ПериодИзРегистра | Сотрудник | Начисления. Соединяешь по периоду и сотруднику, причём в левой периоды без "пробелов", в значение итоговой выборки для начислений прописываешь ЕСТЬNULL
|
|||
13
gul_Sayan
30.06.22
✎
14:23
|
(12)Забыл про пересечение таблиц, это когда соединение не указывается.
|
|||
14
Ryzeman
30.06.22
✎
14:42
|
(13) точно, так даже лучше. У тебя всё получилось?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |