SSRS Lookup 函数

本文将向您展示如何使用 SSRS Lookup 函数及其优势。或者如何在新报表中合并多个数据集。或者,在报表创建中使用 Lookup 函数处理多个数据集,并附有示例。

我们将使用包含 15 条记录的简单 Employee 表数据集来解释 SSRS lookup 函数。请参考 Embedded Data SourceDataset 文章,以了解创建本 SSRS 报表所使用的嵌入式数据源和数据集的步骤。

报表预览显示了我们在上述数据集中使用的自定义 SQL 查询写入的数据。关于 LookupSet,请参考相关文章。

SSRS Lookup 示例

为了演示 Lookup 函数,我们将使用之前设计的报表。首先,我将向您展示报表预览。

请参考 Table ReportFormat Table Report 文章,了解创建表格报表和格式以及 添加报表页眉和页脚 的步骤。

上面的报表是客户的主要标准,突然,客户要求您将部门名称添加到上述报表中。如您所知,Employees 表没有部门名称。我将添加另一个数据集。

要添加第二个数据集,请右键单击 Datasets 文件夹,然后从上下文菜单中选择 Add Dataset.. 选项。

这将打开 DatasetProperties 窗口,以创建我们将用于 SSRS lookup 函数的嵌入式数据集。我将此数据集命名为 SQLTESTDepartmentDS,并编写以下查询来提取部门名称。

SELECT DeptID, DepartmentName 
FROM Department

您可能会想轻松添加部门名称。让我向您展示,如果我将部门名称拖放到现有表中会发生什么。

上面的屏幕截图显示它正在引发错误,因为报表设计器只允许您使用一个数据集。

现在我将向您展示理想的方法,即 Lookup 函数。首先,通过右键单击 Sales 列 -> Insert Column -> Right 在 Sales 列右侧插入一个列。在继续之前,让我解释一下 Lookup 函数。

SSRS Lookup 函数示例

Lookup 函数从指定的数据集中返回匹配的记录。语法如下:

Lookup(Source_IDColumn, 
          Target_IDColumn, 
            Target_Column, 
                       Target_Dataset)
  • Source_IDColumn:类似于 主键。它是第一个数据集的 Id 列。
  • Target_IDColumn:类似于 外键 列。它是第二个数据集的 Id 列。Lookup 函数将检查 Source_IDColumn 是否等于 Target_IDColumn,如果匹配,则返回相应的 Target_Column 值。
  • Target_Column:您想要添加到现有表中的列。
  • Target_Dataset:第二个数据集的名称。

接下来,选择新创建的列,右键单击它以打开上下文菜单。请从中选择 Expression 选项。

Lookup Function 1

选择 Expression 选项后,将打开一个名为 Expression 的新窗口。使用此表达式窗口编写 SSRS lookup 函数。

=Lookup(Fields!DeptID.Value, 
          Fields!DeptID.Value, 
            Fields!DepartmentName.Value, 
                       "SQLTESTDepartmentDS")
SSRS Lookup Function 2

完成 lookup 函数后,单击 OK 关闭窗口。

如您所见,我们的报表预览显示了部门名称。这意味着 Lookup 报表正在显示来自多个数据集的数据。

Lookup Function 3

评论已关闭。