查找不起作用

时间:2016-01-06 03:16:16

标签: tsql reporting-services reportbuilder

我有一个多重查找(每个州一个分区),第一个是工作但不是其他人,我不知道为什么我的生活。任何建议在哪里看。

在下面的代码片段中,第一个可以正常工作,但第二个没有。我将两个(实际上有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

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

2 个答案:

答案 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是整数。