Графики SSRS: Как я могу отобразить n самых больших срезов / баров? - PullRequest
3 голосов
/ 21 апреля 2010

Я знаю, как сгруппировать срезы / бары графика ниже определенного порога вместе в один брусок.Но если данные, отображаемые на графике, содержат много маленьких срезов, сбор срезов ниже 5% или около того приводит к огромному «другому» срезу / полосе.С другой стороны, если я собираю только срезы ниже очень маленького порога, диаграмма может содержать слишком много данных для чтения.

Итак, я бы хотел установить жесткий верхний предел для количества срезов, показать до n самых больших срезов и собрать все остальное в один «другой» срез.

Как я могусделать это с SSRS 2008?

Спасибо,

Адриан

Ответы [ 3 ]

2 голосов
/ 16 августа 2010

Я почти уверен, что это можно сделать в SSRS без переписывания вашего запроса. Я думаю, что будет проще переписать ваш запрос. Однако, учитывая ваши параметры, я продолжу.

Я думаю, это потребует серьезных экспериментов с вашей стороны. Посмотрите на пункты № 17 и № 18 на http://www.ssw.com.au/ssw/standards/rules/rulesToBetterSQLReportingServices.aspx и посмотрите, поможет ли это. Они демонстрируют хороший способ установить масштаб диаграммы на основе значений в строке. Кажется, вы могли бы объединить это с жестким максимумом, используя IIF(Max(MyColumn.Value) > @MyLimit, @MyLimit, Max(MyColumn.Value))

Это дает вам половину уравнения, потому что теперь вы знаете свой предел. Теперь хитрость заключается в том, чтобы поместить все значения ниже определенного масштаба в корзину «Другие». Это также может быть, вероятно, решено с помощью некоторого творческого IIFing: Set the value for the label column = IIF(MyValueColumn.Value < @Threshold, "Other", MyLabelColumn.Value)

Как я уже говорил, вам придется поэкспериментировать, и вам, вероятно, будет проще переписать ваш запрос, но если вы застряли только с SSRS, по крайней мере, у вас есть где начать искать.

0 голосов
/ 09 мая 2010

Не рекомендуется решать такие проблемы в конструкторе SSRS. В большинстве случаев такого рода проблемы решаются в хранимых процедурах или других запросах в базе данных.

если бы у вас был другой сценарий, было бы неплохо управлять данными в Designer, но в этом случае вы отправляете много ненужных данных на сервер, и это займет много времени, и пользователь должен ждать. но если вы сделаете это в БД, пользователь столкнется со своим отчетом раньше, чем ваш сценарий. и именно поэтому вам нужно обрабатывать его в БД.

0 голосов
/ 28 апреля 2010

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

Выберите во временную таблицу N категорий / срезов.

Вставить во временную таблицу категории «Другое» со значением, равным сумме всех категорий, отсутствующих в временной таблице.

...