|
|
|
RS 2008: Подсчет среднего как среднего от среднего с нижних уровней группировки.
|
|||
|---|---|---|---|
|
#18+
Есть задача, - построить отчет по.. допустим, для простоты и наглядности, Средней зарплате по конторе. Датасет состоит из четырех строк. ------------------ Подразделение Работник ЗП ---------------------- Маркетинг Иванов 100 Маркетинг Сидоров 70 Маркетинг Петров 130 IT отдел Касперский 500 ------------------ Строим стандарный отчет, с группировкой по "Подразделение" и итоговой строкой. В форулах прописываем сумму зп деленную на количество работников. То есть По подразделению Маркетинг средняя зп равна (100+70+130)/3=100 По подразделению "IT" 500/1=500. В строке "Итого по конторе" = (100+70+130+500)/4=200 -------- Но заказчик отчета - не принимает такой способ расчета. По его мнению нужно чтобы среднее по "Итого по конторе" строилось из средних значений по подразделениям. То есть-(100+500)/2=300. Подскажите пожалуйста, как такую вот извращенную "бизнес логику" реализовать в RS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 18:42 |
|
||
|
RS 2008: Подсчет среднего как среднего от среднего с нижних уровней группировки.
|
|||
|---|---|---|---|
|
#18+
McCar, почему сразу в RS реализовать? для показа строк отчета передаёте набор данных, а значение "Итого по конторе" передайте в параметре отчета сервер-програмка-отчет 3 места для подгонки данных под нужный вид, в каждом что-то удобнее делать свое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 19:10 |
|
||
|
RS 2008: Подсчет среднего как среднего от среднего с нижних уровней группировки.
|
|||
|---|---|---|---|
|
#18+
koJIo6okMcCar, почему сразу в RS реализовать? для показа строк отчета передаёте набор данных, а значение "Итого по конторе" передайте в параметре отчета сервер-програмка-отчет 3 места для подгонки данных под нужный вид, в каждом что-то удобнее делать свое Я сильно упростил свой пример. Реально там такие уровни, снизу вверх: ----Бригада ---Менеджер --Регион -Итого. И датасет достаточно тяжеловесный, - в смысле SQL запрос громозкий и не быстрый, - конечно, можно для каждого уровня считать нужную цифирь на уровне SQL, но есть надежда, что кто нибудь подскажет способ сделать это через RS. Да.. уточнение - RS 2008 R2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 10:21 |
|
||
|
RS 2008: Подсчет среднего как среднего от среднего с нижних уровней группировки.
|
|||
|---|---|---|---|
|
#18+
McCarконечно, можно для каждого уровня считать нужную цифирь на уровне SQL +1 Попробуйте задать вопрос на этом форуме: http://www.sql.ru/forum/actualtopics.aspx?bid=1 Но сначала обязательно выполните Пункты 4 и 6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 12:14 |
|
||
|
RS 2008: Подсчет среднего как среднего от среднего с нижних уровней группировки.
|
|||
|---|---|---|---|
|
#18+
Начинающий SQL 2008McCarконечно, можно для каждого уровня считать нужную цифирь на уровне SQL +1 Попробуйте задать вопрос на этом форуме: http://www.sql.ru/forum/actualtopics.aspx?bid=1 Но сначала обязательно выполните Пункты 4 и 6 Немного неудачно послали.. У меня источник данных -Firebird. Ну да не важно, просто интересно, действительно никто с такой задачей не сталкивался, или я что то невнятно объяснил. У меня есть примерное представление, как такое вот "иерархическое агрегирование" построить в коде отчета, но думалось, что этот велосипед кто нибудь до меня в каком нибудь блоге представил. Что то подобное я нашел вот тут http://stackoverflow.com/questions/213002/calculating-grand-totals-from-group-totals-in-reporting-services Кроме того, в RS 2008 есть такая замечательная вещь как вложенные агрегаты. Но к сожалению, как я выяснил, если сделать группировку по колонкам, то в Scope колоночной группировки они не работают.. Или я что то не так делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 12:18 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=37427817&tid=1534780]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 474ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...