【问题标题】:Removing redundant values in SSRS report group删除 SSRS 报告组中的冗余值
【发布时间】:2013-01-23 13:58:57
【问题描述】:

我正在使用以下数据集开发 SSRS 报告。 “期间”有一个过滤器。它是一个多选过滤器。数据按“帐户”字段分组。我需要显示每个组的总费用(这很容易)。我还需要在同一组级别显示“预算”。问题是预算数据是多余的——见下文。

假设第一组(帐户=100 AND Period=201301),Sum([Budget]) 将生成 200,这是不正确的。如果用户从过滤器中仅选择一个期间,我可以使用平均功能。如果他们选择多个值(例如 201301,201302),那么平均值将为 (100+100+150+150)/4=125,这是错误的,因为它必须是 100+150=250。我不想在返回的数据集中的所有行中取平均值。

ID Account Period  Expense Budget
1  100     201301  20      100
2  100     201301  30      100
3  100     201302  10      150
4  100     201302  40      150
5  200     ...................

那么,我该如何编写表达式来实现这一点呢? 一个肮脏的解决方法是消除预算列中的冗余值,这样我就可以安全地使用Sum([Budget]),而不必担心重复。更新后的数据集如下所示:

ID Account Period  Expense Budget
1  100     201301  20      100
2  100     201301  30      NULL
3  100     201302  10      150
4  100     201302  40      NULL
5  200     ...................

请就这两种方法提出建议。谢谢。

【问题讨论】:

    标签: reporting-services grouping cumulative-sum


    【解决方案1】:

    最优雅的方式是使用FIRST()聚合函数。

    =FIRST(Fields!Budget.Value, "MyAccountGroupName")
    

    在某些情况下这不起作用。然后,您需要按照您的描述将逻辑移动到您的查询中,或者您可以在报告中使用嵌入式代码。

    【讨论】:

      【解决方案2】:

      我会遵循您的“肮脏解决方法”方法。您可能可以通过一些花哨的计算在 SSRS 中获得结果,但它会完全模糊。

      【讨论】:

        猜你喜欢
        • 2021-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多