我在SSRS中有一個包含兩個數據集的報告。一個數據集NegativeNumbers
會返回一個包含主數據集中使用的0個或更多值的列。「NegativeNumbers」參數缺失值
問題是當@NegativeNumbers
沒有傳遞我的錯誤值:
The NegativeNumbers parameter is missing a value.
的NegativeNumbers查詢不會總是返回一個值(這是正確的),所以我需要在主數據集執行當沒有價值時仍然正確。我認爲檢查「允許空值」會照顧到這一點,但沒有。
參數@NegativeNumbers
是隱藏的,所以它不會接受空值,即使我已經檢查它允許空值和多個值。默認值設置爲NegativeNumbers
數據集值。隱藏的人不喜歡可用的值。
這裏是NegativeNumbers數據集的基本代碼:
select colName
where colName < 0 -- returns all values less than 0 as values
-- for parameter "NegativeNumbers"
這裏是主數據集的基本代碼:
select bunchOfColumns
from mytable
where aColumnName in (@NegativeNumbers)
-- this returns only the values where the column value is a match for one
-- of the values returned by the @NegativeNumbers dataset
的實際查詢比這複雜得多,包括工會所有聲明,但這說明了我正在嘗試做什麼。如果第一個查詢沒有返回任何值,那麼第二個查詢會給我提供錯誤。如果數據集是空的,並且檢查「允許空值」,爲什麼它不會僅僅用代替@NegativeNumbers
的值?
我已經搜索了谷歌。沒有運氣。我玩過不同的參數選項。沒有運氣。我已經重建了這份報告。沒事了。我總是得到這個錯誤,但我不知道如何解決它。
*在我的桌子上打我的頭,質疑我編碼存在的意義。
*嘆息
這是一些先進的SSRS的東西,我不是最好的解釋所以如果有任何問題,將有助於澄清我想要做什麼,要求離開。
「參數 - @ NegativeNumbers - 隱藏,所以它不會取空值」 - 這聽起來不合適。隱藏參數並不妨礙它接受NULL值,如果數據集沒有返回任何結果,將返回該值。 – Nathan 2013-05-08 02:57:15
你可以嘗試更新你的可用值數據集查詢類似'SELECT CAST(Nr AS VARCHAR(20))NumTable WHERE Nr <0 UNION ALL SELECT'''? – Jeroen 2013-05-08 06:43:55
@Nathan對不起,我不能有一個多值的null,我需要的情況下,如果我得到多於1的結果是負面的。 – Rainhider 2013-05-08 13:55:19