同事忙不開了交過來的一個小問題,之前我也沒有作過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