查找不工作

Lookup not working

我进行了多次查找(每个州分区 1 个),第一个正在工作,但其他的没有,我终究无法弄清楚为什么。任何建议在哪里看。

在下面的代码片段中,第一个有效,但第二个无效。我将两者(实际上有 6 个)作为参数传递给自定义代码函数,但在我单击“查看报告”按钮后,报告在文本框中显示#Error。我将查找分成虚拟文本框,第一个有效,第二个显示#Error。

=Lookup(Parameters!NDEVDivisionalModelID.Value, Fields!DivModel_ID.Value, Fields!DivModel_Name.Value, "NDEVExtras")

=Lookup(Parameters!NSWDivisionalModelID.Value, Fields!DivModel_ID.Value, Fields!DivModel_Name.Value, "NSWExtras")

数据集背后的参数和查询是相同的,除了明显的状态过滤器和两个参数都将可用值绑定到相应的数据集。

对于新南威尔士州,数据集查询是:

SELECT 0 AS DivModel_ID,
       NULL AS FinYearEnd,
       '(None)' AS DivModel_Name
WHERE  'NSW' NOT IN (@StateDivisionID)

UNION

SELECT D.ID AS DivModel_ID, 
       D.FinYearEnd, 
       D.Name AS DivModel_Name
FROM DivModel D INNER JOIN States S ON D.StateID = S.ID
WHERE s.Name = 'NSW' AND 
      s.Name IN (@StateDivisionID) AND
      D.FinYearEnd <> -1
ORDER BY FinYearEnd DESC, DivModel_Name

这里没有什么复杂的,我看不出我自己可能犯了一个愚蠢的错误。如果这是一个拼写错误,那么我确定报告不会保存,所以它一定是别的东西。

查看您的代码,where 子句没有意义:

WHERE s.Name = 'NSW' AND 
      s.Name IN (@StateDivisionID) AND 
      D.FinYearEnd <> -1

你有:

s.Name = 'NSW'

还有

s.Name IN (@StateDivisionID)

你应该具备以下条件:

WHERE (s.Name = 'NSW' OR 
          s.Name IN (@StateDivisionID)) AND 
          D.FinYearEnd <> -1

如果您想在所有查找结果中包含新南威尔士州。否则我会做以下事情:

WHERE     s.Name IN (@StateDivisionID) AND 
          D.FinYearEnd <> -1

我找到了答案我只是忘了设置其他参数的 data-type 它被保留为文本,应该是整数因为我的 ID 是整数。