使用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

相關文章
相關標籤/搜索