我目前正在处理SSRS 2008报告,该报告返回类似于以下内容的数据集:
Job# ClientId MoneyIn MoneyOut
------------------------------
1 ABC123 10 25
1 ABC123 10 25
1 ABC123 5 25
2 XYZ123 25 50
2 XYZ123 25 50
3 XYZ123 15 15
如果作业已正确平衡,MoneyOut
应等于作业MoneyIn
的总量。
我遇到的问题是在SSRS的Tablix中显示这个问题时,我可以通过将字段设置为MoneyOut
来为作业返回正确的=first(Fields!MoneyOut.Value)
值,但我还需要求和这些值的日期和尝试=sum(first(Fields!MoneyOut.Value))
会产生关于嵌套聚合函数的错误。
我还尝试使用类似=sum(ReportItems!MoneyOut1.Value)
之类的内容来对文本框的值求和,这会产生错误,您只能在页眉或页脚中的报表项上使用聚合。
所以我的问题是,是否有某种方法可以在SSRS报告中复制distinct()的功能,或者是否有某种方法可以总结我不知道的文本字段的值?
答案 0 :(得分:3)
为什么在SQL Server中使用它时需要等效的SUM(DISTINCT ...)函数?
听起来您需要更改向报表提供数据的查询,而不是尝试在报表中执行此操作。
答案 1 :(得分:1)
如果我真的理解了您的问题,您必须使用组对数据进行分组,并在每个组中汇总您喜欢的数据。
答案 2 :(得分:0)
用以下内容替换“ MoneyOut”字段:
CASE
WHEN ROW_NUMBER() OVER (PARTITION BY MoneyOut ORDER BY ClientId) = 1
THEN MoneyOut
ELSE NULL
END AS MoneyOut