|
Неправильно рассчитываются итоги в иерархической группировке на СКД. | ☑ | ||
---|---|---|---|---|
0
vakrikun
24.08.17
✎
12:47
|
Здравствуйте, прошу помочь разобраться. Есть отчет на СКД с группировками: Номенклатура (Иерархия), Серия. Есть ресурс "Цена" для каждой серии.
Задача состоит в том, чтобы посчитать среднее значение цены в разрезе номенклатуры, т.е. отчет выходит в следующем виде: - Номенклатура (Иерархия) | Сред.цена -- Серия | Сред.цена Конкретно на примере: - Группа Мебель | Уровень иерархии 1 -- Группа Стулья | Уровень иерархии 2 --- Номенклатура Стул Деревянный | 15 - Серия 1 | 10 - Серия 2 | 20 --- Номенклатура Стул Железный | 46,6 - Серия 3 | 10 - Серия 4 | 70 - Серия 5 | 60 Проблема в верхних уровнях группировки (уровень иерархии 1 и 2). Мне нужно, чтобы средняя цена для этих группировок рассчитывалась как средняя цена номенклатуры входящей в группу. Т.е. на данном примере это было бы (15 + 46,6) / 2 = 30,8 - Группа Мебель | 30,8 -- Группа Стулья | 30,8 --- Номенклатура Стул Деревянный | 15 - Серия 1 | 10 - Серия 2 | 20 --- Номенклатура Стул Железный | 46,6 - Серия 3 | 10 - Серия 4 | 70 - Серия 5 | 60 На данный момент отчет считает не среднюю цену номенклатуры, а среднюю цену всех серий входящих в группу. Т.е (10 + 20 + 10 + 70 + 60) / 5 = 34: - Группа Мебель | 34 -- Группа Стулья | 34 --- Номенклатура Стул Деревянный | 15 - Серия 1 | 10 - Серия 2 | 20 --- Номенклатура Стул Железный | 40 - Серия 3 | 10 - Серия 4 | 70 - Серия 5 | 60 В результате неправильные показатели. На закладке ресурсы в СКД пробовал множество вариантов, сейчас этот: Поле | Выражение | Рассчитывать по Цена | Среднее(Цена) | Цена | Среднее(ВычислитьВыражениеСГруппировкойМассив("Среднее(Цена)", "Номенклатура")) | Общий итог |
|||
1
breezee
24.08.17
✎
13:09
|
(0) Может проще в запросе посчитать? Уже посчитана для номенклатуры, можно сгруппировать и разделить на количество номенклатур, наверное, используя группировки, до конца решения не вижу, но может это поможет)
|
|||
2
vakrikun
24.08.17
✎
13:24
|
(1) Это лишь один из ресурсов в которых надо посчитать сред. цену, а таких ещё в запросе более 10. Полезу в запрос увеличу время формирования отчета, которое и так не маленькое. Хотелось бы именно средствами СКД решить это. Ну наверняка же можно.
|
|||
3
breezee
24.08.17
✎
13:28
|
(2) Может на СКД "Рассчитывать по" твои ресурсы тебе поможет? На вкладке "Ресурсы".
|
|||
4
vakrikun
24.08.17
✎
13:36
|
(3) Не совсем понял.
|
|||
5
vakrikun
24.08.17
✎
13:44
|
(3) Я в ресурсах "рассчитывать по" шаманил разными способами. Всё равно не дает результат. Добился только, чтобы в общий итог выводилась правильная цифра, но в верхние папки не могу.
|
|||
6
breezee
24.08.17
✎
13:46
|
(4) Прошу прощения, не до конца дочитал первый пост.
Может стоит вывести в запросе поле со значение 0, для расчетов, потом в ресурсах это поле вывести, в выражении написать "Среднее(Цена)" а в рассчитывать по "Номенклатура" я думаю, можеть быть проблема что ты рассчитываешь по общему итогу, а не по полю "номенклатура" |
|||
7
vakrikun
24.08.17
✎
14:01
|
(6) Попробовал. Результат тот же: средняя цена по номенклатуре правильная, а выше в группировках средняя цена рассчитана по сериям.
|
|||
8
vakrikun
24.08.17
✎
14:53
|
Нашел одно решение, может кому-то пригодится. В запросе добавляем поле "Номенклатура.родитель". На вкладке в СКД "Набор данных" - "Поля" в измерение Номенклатура ставим родитель "НоменклатураРодитель". Структуру отчета делаем таким образом:
НоменклатураРодитель(Иерархия) Номенклатура Серия Ресурсы: Поле | Выражение | Рассчитывать по Цена | Среднее(Цена) | Номенклатура Цена | Среднее(ВычислитьВыражениеСГруппировкойМассив("Среднее(Цена)", "Номенклатура")) | НоменклатураРодитель Иерархия, Общий итог |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |