2016-10-17 5 views
0

Я использую SSRS 2014. Моя конечная цель, чтобы получить таблицу, которая выглядит следующим образом:SSRS: Таблица группы агрегатов с ОБЩИЙ ИТОГ

Project Status  # of Projects Oldest Project Avg Project Age 
Status 1     27    82    16 
Status 2     9    29     6 
Status 3     13    112    25 
Status 4     33    68    16 
Status 5     1    63    63 
Status 6     1    27    27 
Grand Total    84    112    17 

таблица, как это, в том числе общие итоги, можно выполняются в Excel с помощью сводных таблиц (это то, как данные изначально были получены ... вручную ...)

Если у меня есть одинаковые исходные данные в таблице, где мои столбцы включают projectStatus и projectAge, я мог бы сгенерировать запрос, чтобы получить все, кроме общих итогов в SQL:

SELECT projectStatus, COUNT(projectStatus), MAX(projectAge), AVG(projectAge) 
FROM projects 
GROUP BY projectStatus 

Если бы я хотел, чтобы добавить общие итоги в том, что я мог бы сделать UNION со следующим запросом:

SELECT 'Grand Total', COUNT(projectStatus), MAX(projectAge), AVG(projectAge) 
FROM projects 

Обратите внимание, что общие итоги рассчитываются от всего набора данных, а не только сгруппированные данные - это в основном относится к среднему значению, так как это просто получается для столбцов COUNT и MAX.

Теперь, если я пытаюсь сгенерировать эту таблицу выше в SSRS, легко создать приведенную выше таблицу sans grand totalals, используя прежний запрос. Тем не менее, теперь как добавить итоговые суммы?


вместо этого я мог бы попробовать другой подход, при котором я использую более общий набор данных запрос типа:

SELECT projectStatus AS statusCategory, projectAge AS daysInCurrentStatus FROM projects 

, а затем использовать агрегатные функции в моей таблице и имеют SSRS сделать агрегацию себя и обеспечить великое итоговые данные по исходным данным. Теперь я получаю новую проблему. Каков правильный способ установки таблицы? Я звоню группировку по [statusCategory] как «Group1», используя контекстными агрегатные функции следующим образом:

SSRS Scoped Group Aggregate Table Design

И это правильно генерирует общие итоги, но теперь у меня есть новая проблема: она показывает среднее для каждой строки вместо одной ячейки в группе/области. Это что-то такое, что SSRS предназначено, и если да, то как я могу это сделать?

SSRS Scoped Group Aggregate Table Preview (1)

...

SSRS Scoped Group Aggregate Table Preview (2)

ответ

1

Вам нужно немного потрудиться, чтобы получить правильную компоновку, но вам в основном нужен заголовок или нижний колонтитул группы, чтобы показать агрегаты группы.

Если вы щелкните правой кнопкой мыши по линиям рядом с [statusCategory] и выберите Insert Row > Outside Group - Above, он создаст для вас заголовок группы. Затем просто добавьте свои агрегированные выражения в правильные столбцы, например =Count(Fields!projectStatus.Value), тогда вы можете просто установить Row Visibilty в строке сведений, чтобы скрыть, если вы не хотите ее видеть.

Вы должны в конечном итоге иметь макет, подобный этому.

enter image description here

с средним рядом (деталь) видимостями значением ЛЖИ

+0

Вы попали ногтевые человек! Только то, что мне нужно было сделать, это 'Insert Row> Inside Group - Above' вместо внешней группы. Это работало именно так, как я надеялся. –

0

Вы находитесь на правильном пути. Сейчас у вас две группы Row. Все, что вам нужно сделать, это удалить внутренний, потому что он нигде не сгруппирован. Другими словами, он повторяется для каждой строки необработанных данных.

Таким образом, группа строк с именем «Детали» - либо удалите ее, либо в свойствах нажмите «Добавить» и сгруппируйте ее по 1. Это приведет к срыву этих строк и сделает то, что вы ожидали.