SSRS 最后一个函数

SSRS 最后一个函数是一个聚合函数,它返回给定表达式的最后一个值。您还可以使用 Last 函数来测试返回布尔值 True 或 False 的表达式。本文将通过示例介绍如何使用 Last 函数在特定组或完整表中查找最后一个(结束行)值或文本。

SSRS 最后一个函数用于查找默认范围内的起始值的语法如下所示。

Last(Fields!SalesAmount.Value)

请使用以下 SSRS 最后一个函数语法来检查最后一个值是 Tue 还是 False。您可以将“G”替换为参数值、组名或数据集。

Last(Fields!MiddleName.Value = "T")

为了演示 Last 函数,我们使用下面的 Employee 表,该表按职业分组有 15 条记录。下图显示了表格报表中的记录。

Aggregate Source

SSRS 最后一个函数示例

右键单击详细信息行中的任何字段,选择插入行,然后选择“组外部—下方”选项以添加新行。接下来,合并前三列,并将“最后一个值”添加为文本。为了理解报表,我建议您参考 SSRS 中的 图表表格分组格式化表格 文章。

编写 SSRS 最后一个函数有多种方法。第一种方法是单击单元格并选择 YearlyIncome 字段,它将分配默认聚合函数,即 Sum。因此,选择文本(Sum(YearlyIncome)),选择“汇总方式”,然后单击“最后一个函数”。它内部会写入以下表达式

=Last(Fields!YearlyIncome.Value)
Change the Summarized by option

第二种方法是右键单击“Sales”下方的文本框,然后选择“Expression”选项。这将打开以下表达式窗口,允许您编写更复杂的 SSRS 最后一个函数以及范围。下面的代码将返回每个组的最后一个销售值。

=Last(Fields!Sales.Value)
SSRS Last Function Expression

请单击预览选项卡以查看员工的最后一个年收入和最后一个销售值。如果您观察报表,它默认会显示每个职业组中的最后一个值,因为这是默认范围。

SSRS Last Function Preview

SSRS 最后一个函数范围示例

为此,我将向“Sales”右侧添加一个新列,并将标题命名为“Last Sale”。接下来,右键单击文本框并选择“Expression”。有关更多函数 >> 点击此处!

下面的表达式返回的结果与“Last Value”行显示的结果相同,即每个组中的最后一个值。但是,由于我们手动更改了 Last 函数的范围,因此您拥有更多控制权。

=Last(Fields!Sales.Value, "Occupation")

下面的 SSRS 最后一个函数表达式将每个职业组的个人员工销售额减去最后一个销售额值。请记住,“Occupation”是组名。

=Last(Fields!Sales.Value, "Occupation") - Fields!Sales.Value
Complex last expression with group scope

如果您查看报表预览,“Rob Johnson”的最后一个销售额是 4968.59(最后一个管理销售额)- 3399.99(销售额)= 1568.6。

如前所述,要查找整个表或所有员工的最后一个值,您必须将组名(“Occupation”)替换为表名(“Tablix1”)。让我向组外添加一个额外的行,并为年收入和销售额添加下面的两个 SSRS 最后一个函数表达式。

=Last(Fields!YearlyIncome.Value, "Tablix1")
=Last(Fields!Sales.Value, "Tablix1")

除了上述内容之外,还在“First Name”旁边添加了一个新列(“Last Bool”)来显示布尔结果。如果 First Name 是“Christy”,则下面的表达式返回 True;否则返回 False。

=Last(Fields!FirstName.Value = "Christy")

下面的 Last Function 报表显示了员工年收入和销售额的最后一个值。您可能对结果感到疑惑,因为它没有显示 Rob Huang 的结果。在原始数据集中,EmpID 15 的最后一个值是 Tutorial Gateway,其销售额为 90000,为 3578.27。

SSRS Last Function report preview

请将 Tablix1 替换为 Dataset 名称,以获取与报表应用的过滤器无关的最后一个销售额。