2

我目前正在使用 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() 的功能,或者是否有某种方法可以汇总我不知道的文本字段的值?

4

3 回答 3

3

当您在 SQL Server 中拥有 SUM(DISTINCT ...) 函数时,为什么需要它的等效函数?

听起来您需要更改为报表提供数据的查询,而不是尝试在报表本身中执行此操作。

于 2010-03-30T12:52:52.583 回答
1

如果我真的理解你的问题,你必须使用 group 对数据进行分组,并在每个组中汇总你最喜欢的数据。

于 2010-03-30T10:13:03.960 回答
0

将您的“MoneyOut”字段替换为以下内容:

CASE 
    WHEN ROW_NUMBER() OVER (PARTITION BY MoneyOut ORDER BY ClientId) = 1
    THEN MoneyOut
    ELSE NULL
    END AS MoneyOut
于 2020-08-06T15:59:48.407 回答