查找不工作
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 是整数。
我进行了多次查找(每个州分区 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 是整数。