查找函数不返回值

Lookup function not returning value

我在 SSRS 中有一个数据集,它使用以下 TSQL 作为数据集:

SELECT  ROW_NUMBER() OVER ( ORDER BY Judge.EventJudgeID ) AS Row ,
    Judge.EventJudgeID ,
    Judge.EventID ,
    Judge.Judge_PersonID ,
    Judge.Passcode ,
    Persons.LastName + ' ' + Persons.FirstName AS JudgeName ,
    Events.EventName ,
    Events.EventDate
FROM    DB.dbo.tblEventJudge Judge
    INNER JOIN DB.dbo.Persons Persons ON PersonID = Judge_PersonID
    INNER JOIN DB.dbo.tblEvents Events ON Events.EventID = Judge.EventID

对于给定的事件,它将return以下数据:

我有一份 SSRS 报告,我想把法官的名字放在上面,看起来像这样:

在法官 1 的表达式中,我有以下内容:

=Lookup(Fields!Row.Value,1,Fields!JudgeName.Value,"UpperRightBox")

这似乎运行良好。所以我将以下内容放入法官 2 框中:

=Lookup(Fields!Row.Value,2,Fields!JudgeName.Value,"UpperRightBox")

这 return 是一个空白,其中没有任何信息。我不完全理解为什么它不查找第 2 行并用 JudgeName 值填充它。我正在使用 SQL Server 2012,但这无关紧要,因为报告尚未部署。任何帮助将不胜感激。

您需要交换前两个参数。语法是:

Lookup(source_expression, destination_expression, result_expression, dataset)

source_expression: Evaluates the source expression in the current scope.

destination_expression: Evaluates the destination expression for each row of the specified dataset after filters have been applied, based on the collation of the specified dataset.

所以对于第二个字段你需要说:取这个常数:2(来源),并遍历数据集中的所有行 "UpperRightBox",当你找到一个 2 的行时名为 "Row"(目的地)的列,告诉我该行(结果)中的法官姓名是什么。