SSRS First 函数

SSRS First 函数是一个聚合函数,它返回给定表达式的第一个值。您也可以使用它来测试返回布尔值 True 或 False 的表达式。本文将通过示例说明如何使用 First 函数查找特定组或完整表中的第一个(主)值或文本。

在默认范围内查找起始值的 SSRS First 函数的语法如下所示。

First(Fields!SalesAmount.Value)

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

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

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

Aggregate Source

SSRS First 函数示例

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

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

=First(Fields!YearlyIncome.Value)
Change the Summarized by option to SSRS First Function

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

=First(Fields!Sales.Value)
Expression to find the First sales value in a group

请单击预览选项卡以查看 Employee First 的年收入和 First 销售值。如果您查看报告,它默认显示每个职业组中的 First 值,因为这是默认范围。有关更多函数 >> 单击此处!

SSRS First Function preview

SSRS First 函数范围演示

为此,我将向 Sales 右侧添加一个新列,并将标题命名为 First Sale。接下来,右键单击文本框并选择“Expression”。

下面的函数表达式返回的结果与 First Value 行所示的结果相同,即每个组中的第一个值。但是,您可以获得更多控制,因为我们手动更改了 First 函数的范围。

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

下面的表达式将单个员工的销售额减去每个职业组的第一个销售值。请记住,“Occupation”是组名。

=First(Fields!Sales.Value, "Occupation") - Fields!Sales.Value
Expression to perform arithmetic operations

如果您查看报告预览,Christy Carlson 的 First Sale 为:3399.99(第一次管理销售)- 2320.49(销售额)= 1079.5。

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

=First(Fields!YearlyIncome.Value, "TablixFirst")
=First(Fields!Sales.Value, "TablixFirst")

除此之外,我将 First Name 旁边添加一个新列来展示布尔结果。如果 First Name 是“Rob”,下面的表达式将返回 True;否则,将返回 False。

=First(Fields!FirstName.Value = "Rob")

下面的函数报告显示了 Employee First 的年收入和销售额。您可能会对结果感到疑惑,因为它没有显示 Christy Mehta 的结果。在原始数据集中,EmpID 1 的第一个值为 Tutorial Gateway,其销售额为 90000,销售额为 3578.27。

SSRS First Function on Group, Table, and Boolean Preview

请将 Tablix1 替换为数据集名称,以获取第一个销售值,而忽略应用于报告的任何过滤器。