Reporting services 删除SSRS报告组中的冗余值
我正在使用以下数据集开发SSRS报告。“Period”有一个过滤器。它是一个多选过滤器。数据按“帐户”字段分组。我需要显示每组的总费用(这很容易)。我还需要在同一组级别上显示“预算”。问题在于预算数据是冗余的-见下文 假设对于第一组(Account=100,Period=201301),Reporting services 删除SSRS报告组中的冗余值,reporting-services,grouping,cumulative-sum,Reporting Services,Grouping,Cumulative Sum,我正在使用以下数据集开发SSRS报告。“Period”有一个过滤器。它是一个多选过滤器。数据按“帐户”字段分组。我需要显示每组的总费用(这很容易)。我还需要在同一组级别上显示“预算”。问题在于预算数据是冗余的-见下文 假设对于第一组(Account=100,Period=201301),Sum([Budget])将生成200,这是不正确的。如果用户只从过滤器中选择一个周期,我可以使用平均值函数。如果他们选择多个值(例如201301201302),则平均值将是(100+100+150+150)/4
Sum([Budget])
将生成200,这是不正确的。如果用户只从过滤器中选择一个周期,我可以使用平均值函数。如果他们选择多个值(例如201301201302),则平均值将是(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])
w/o担心重复。更新后的数据集如下所示:
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 ...................
请为这两种方法提供建议。谢谢。我会遵循你的“肮脏变通”方法。通过一些奇特的计算,您可能能够在SSR内部获得结果,但这将是完全不清楚的。我将遵循您的“肮脏变通”方法。通过一些奇特的计算,您可能可以在SSR内部获得结果,但这将是完全不清楚的。最优雅的方法是使用聚合函数
=FIRST(Fields!Budget.Value, "MyAccountGroupName")
在某些情况下,这是行不通的。然后,您需要按照描述将逻辑移动到查询中,或者您可以在报表中使用嵌入的代码。最优雅的方法是使用聚合函数
=FIRST(Fields!Budget.Value, "MyAccountGroupName")
在某些情况下,这是行不通的。然后,您需要按照描述将逻辑移到查询中,或者您可以在报表中使用嵌入的代码