我有一个多重查找(每个州一个分区),第一个是工作但不是其他人,我不知道为什么我的生活。任何建议在哪里看。
在下面的代码片段中,第一个可以正常工作,但第二个没有。我将两个(实际上有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")
数据集后面的参数和查询是相同的,除了显然状态上的过滤器和两个参数都绑定到相应数据集的可用值。
对于NSW,数据集查询是:
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
这里没有什么复杂的事情,我看不出自己可能是一个愚蠢的错误。如果是拼写错误,那么我确定报告不会保存,所以它必须是别的。
答案 0 :(得分:0)
查看代码where子句没有意义:
new_dat<-matrix(nrow=10, ncol =0)
for (i in 1:length(dat)){
colnames(dat[[i]]) <- paste(colnames(dat[[i]]), "_", names(dat)[i], sep='')
new_dat<-cbind(new_dat,dat[[i]])
}
new_dat<- data.frame(new_dat, stringsAsFactors = FALSE)
print(new_dat)
你有:
WHERE s.Name = 'NSW' AND
s.Name IN (@StateDivisionID) AND
D.FinYearEnd <> -1
但也
s.Name = 'NSW'
如果您有以下内容:
s.Name IN (@StateDivisionID)
如果您想在所有查找结果中包含NSW。否则我会做以下事情:
WHERE (s.Name = 'NSW' OR
s.Name IN (@StateDivisionID)) AND
D.FinYearEnd <> -1
答案 1 :(得分:0)
我找到了答案,我忘了设置其他参数的数据类型,它保留为Text,应该是Integer,因为我的ID是整数。