我知道如何将低于某个阈值的图表切片/条形图组合成一个条形图。但是,如果图表中显示的数据包含大量小切片,则收集低于5%左右的切片会产生巨大的“其他”切片/条。另一方面,如果我只收集低于非常小的阈值的切片,则图表可能包含太多数据以供读取。
所以,我想为切片数量设置一个硬上限,显示最多n个切片并将其他所有切片收集到一个“其他”切片中。
如何使用SSRS 2008做到这一点?
谢谢,
阿德里安
答案 0 :(得分:2)
我很确定在SSRS中可以做到这一点,而无需重写您的查询。我认为重写查询会更容易。但是,根据你的参数,我会继续。
我认为这将需要您进行一些认真的实验。看看http://www.ssw.com.au/ssw/standards/rules/rulesToBetterSQLReportingServices.aspx处的第17和第18点,看看它是否有帮助。它们展示了一种基于行中值设置图表比例的好方法。您似乎可以使用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,至少你有一个地方可以开始寻找。
答案 1 :(得分:0)
我通常会在查询中处理这种情况。 (我从未用过2008,所以我不确定它是否有更好的功能)
在临时表中选择N个类别/切片。
插入名为“Other”的临时表类别,其值等于临时表中尚未存在的所有类别的总和。
答案 2 :(得分:-1)
在SSRS设计器中处理这类问题并不是一个好主意。在大多数情况下,这些问题在存储过程或数据库中的其他查询中处理。
如果您有其他方案,最好在Designer上控制数据,但在这种情况下,您会向服务器发送大量废弃数据,这需要很长时间才能处理,用户应该等待。但如果您在数据库中执行此操作,用户将比您的方案更快地面对他/她的报告。这就是为什么你需要在DB上处理它。