使用Reporting Services时遇到的小问题

同事忙不开了交过来的一个小问题,之前我也没有作过Reporting Services相关的。spa

大概看了一下,是数据集那边的查询代码接收不到报表参数,并且不是单纯地接收不到,具体状况以下。。code

命令类型是Text,配置了几个报表参数,若是是如下这个形式就执行成功:xml

if(@TimeType=1)
begin
  --查询
end

else if (@TimeType = 2)
begin
  --查询
end

可是若是我在这前面加上一系列的判断+赋值,就像这样blog

if(@Year is not null and @quarter is not null)
begin
 if(@quarter =1)
 begin
    set @startDate =convert(datetime, @Year+'-1-1')
    set @EndDate=convert(datetime, @Year+'-3-31')
 end
 else if(@quarter =2)
 begin
    set @startDate =convert(datetime, @Year+'-4-1')
    set @EndDate =convert(datetime, @Year+'-6-30')
 end
 else if(@quarter =3)
 begin
    set @startDate =convert(datetime, @Year+'-7-1')
    set @EndDate =convert(datetime, @Year+'-9-30')
 end
 else if(@quarter =4)
 begin
    set @startDate =convert(datetime, @Year+'-10-1')
    set @EndDate =convert(datetime, @Year+'-12-31')
 end
 else if(@quarter =5)
 begin
    set @startDate =convert(datetime, @Year+'-1-1')
    set @EndDate =convert(datetime, @Year+'-6-30')
 end
 else if(@quarter =6)
 begin
    set @startDate =convert(datetime, @Year+'-7-1')
    set @EndDate =convert(datetime, @Year+'-12-31')
 end
 else if(@quarter =7)
 begin
    set @startDate =convert(datetime, @Year+'-1-1')
    set @EndDate =convert(datetime, @Year+'-12-31')
 end
    
end

if(@TimeType=1)
begin
  --查询
end

else if (@TimeType = 2)

begin
  --查询
end

在预览的时候就会提示文档

“本地报表处理期间出错。处理报表时出错。XXX,必须声明标量变量@Year,必须声明标量变量@quarterxxxxxxxx”class

翻来覆去地看了下,也没有弄清楚,扒开了xml文档看到查询是写在CommandText节点下的,可是也没看到什么切入点。变量

后来就把上面那一大串判断所有改为case when方式写到查询语句里面,也就是说只存在一个查询语句,运行没问题了。配置

可是仍是不知道是什么问题报这个错,难道在Text的命令方式下,只能写单条的select语句?不能像一个MSSQL里面正常的查询那样去写?date

在MSDN上粗略找了一下,也没有找到说这方面的文档,暂且记录一下吧。select

相关文章
相关标签/搜索