我如何总结 rdlc 报告中每组列的最后一行值?

How can i sum up the last row value of a column in each group in a rdlc report?

我只想在 rdlc 报告中添加每组任意列的最后一行值,因此, 我有一个 rdlc 组报告,其中有一个余额列,所以我想要在报告中添加每个组的最后余额值,这是我的 table 看起来像 '

Customer   Balance
  Mark       1500
  Mark       2500
-----------------------
  Steve     4500
  Steve     5600
-----------------------
 Alex      10000
 Alex      24000

'。我想添加每个客户的最后余额值,即 2500+5600+24000,这是我之前尝试过但没有用的 rdlc 表达式:

'=SUM(LAST(fields!balance.value),"mygroup")'

如果有人为我提供解决此问题的解决方案,我会很高兴。

您可能已经意识到,您不能在外部聚合中使用 FIRST、LAST 等,但有办法绕过它。

首先我复制了你的数据,但我也添加了一个排序列。我假设您已经有一列可以排序(发票编号日期等)。

诀窍是仅当排序值与组的最大排序值相同时才求和,通过示例会更清楚。

这是我生成的示例数据。

DECLARE @t TABLE (Customer varchar(50), sort int, Amount int)
  INSERT INTO @t VALUES
    ('Mark', 1, 1500),
    ('Mark', 2, 2500),
    ('Steve', 1, 4500),
    ('Steve', 2, 5600),
    ('Alex', 1, 10000),
    ('Alex', 2, 24000)

  SELECT * FROM @t 

接下来我创建了一个新报表,将上述查询添加为数据集查询并向报表添加了简单的 table。

我添加了一个行组以按 Customer 进行分组并按 sort 对该组进行排序。

然后我在组外添加了最后一行并设置表达式以给出您需要的结果。

这是简单的报表布局。

这是我使用的表达方式。

=Sum(
    IIF(
        Fields!sort.Value = MAX(Fields!sort.Value, "Customer"),
        Fields!Amount.Value,
        0
        )
    )

注意: "Customer" 字符串指的是行组名称(在图像中突出显示),而不是数据集列。

这是最终输出