【问题标题】:SSRS charts: How can I display the n biggest slices / bars?SSRS 图表:如何显示最大的 n 个切片/条?
【发布时间】:2010-04-21 10:41:09
【问题描述】:

我知道如何将低于某个阈值的图表切片/条组合成一个条。但是,如果图表中显示的数据包含大量小切片,则收集低于 5% 左右的切片会产生巨大的“其他”切片/条。另一方面,如果我只收集低于非常小的阈值的切片,则图表可能包含太多无法读取的数据。

所以,我想为切片数量设置一个硬性上限,最多显示 n 个最大切片并将其他所有内容收集到一个“其他”切片中。

如何使用 SSRS 2008 做到这一点?

谢谢,

阿德里安

【问题讨论】:

    标签: reporting-services charts


    【解决方案1】:

    我很确定这可以在 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,那么至少您有一个地方可以开始寻找。

    【讨论】:

    • 感谢您的指点,我会在再次处理我的 ssrs 报告时尝试一下。
    【解决方案2】:

    我通常会在我的查询中处理这种情况。 (我从没用过2008所以我不确定它是否有更好的功能)

    选择到临时表顶部的 N 个类别/切片。

    插入名为“其他”的临时表类别,其值等于临时表中所有类别的总和。

    【讨论】:

    • 我知道这是可能的,但我希望有一个不需要单独的 sql 查询的解决方案。毕竟数据已经有了,只是需要正常显示而已。
    • 据我所知,SSRS的表示层没有直接的能力来做到这一点
    【解决方案3】:

    在 SSRS 设计器中处理此类问题不是一个好主意。在大多数情况下,这类问题在存储过程或数据库中的其他查询中处理。

    如果您有其他情况,最好在 Designer 上控制数据,但在这种情况下,您会将大量浪费数据发送到服务器,这将需要很长时间来处理,用户应该等待。但是如果您在数据库中执行此操作,用户将比您的情况更早地面对他/她的报告。这就是为什么你需要在 DB 上处理它。

    【讨论】:

    • -1:我的报告以两种不同的方式呈现数据:图表和表格。现在,我正在重新使用表格所需的数据来生成图表,因此没有“浪费数据”。获取相同数据的两个查询如何比一个更好?
    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    相关资源
    最近更新 更多