2014-09-23 39 views
0

我在SSRS 2008中構建了一個查詢Oracle的報告。 我有3個文本參數構建到數據集查詢 - 他們應該以一種方式工作,如果留空,他們應該包括一切。如果我在每個參數中添加一個值 - 報告返回值。但是,只要我刪除其中一個值 - 將框留空 - 報表不會返回任何內容(實際上它應該返回更多的結果行)。 請參閱下面的查詢。我試圖在過去的兩天內對它進行故障排除,試圖在互聯網上查找一些附件,查看會話詳細信息 - 沒有運氣。 我將不勝感激任何幫助,謝謝。SSRS可選參數不起作用

select WI_NUM , COMPONENT_NUM , LOT_NUM 
from CONS 
where 
(:WI_NUM = '' OR WI_NUM = :WI_NUM) 
and 
(:COMP_NUM = '' OR COMPONENT_NUM = :COMP_NUM) 
and 
(:LOT_NUM = '' OR LOT_NUM = :LOT_NUM) 

我也試過,但同樣的問題:

where 
(:WI_NUM is NULL OR WI_NUM = :WI_NUM) 
and 
(:COMP_NUM is NULL OR COMPONENT_NUM = :COMP_NUM) 
and 
(:LOT_NUM is NULL OR LOT_NUM = :LOT_NUM) 

所有參數都設置爲數據類型文本,允許空格,不允許使用空值(未選中)。

+0

參數一定不能爲空。您是否嘗試在報告中顯示參數的值或將它們拉入數據集?我還要檢查參數值的長度,以確保它不包含多個空格。我從來沒有使用SSRS與Oracle數據庫,所以我不知道是否會有任何差異,但你的代碼看起來應該對我有用。 – 2014-09-23 13:04:47

+0

可能[複製](http://stackoverflow.com/questions/17681428/issue-with-oracle-bind-variables-not-using-index-properly/17702034) – tbone 2014-09-23 13:31:16

+0

嗨。我構建了一個數據集來檢查parater是否爲空:CASE在:WI_NUM爲NULL時THEN 1 ELSE 0結束FIELD1,當parater爲空時顯示1,但報告不返回任何內容。這令人沮喪。 – wiciuo 2014-09-23 14:12:00

回答

0

該報告是由modyfying上次報告建立。我決定從頭開始編寫報告,並立即開展工作。一定是模板出了問題。 謝謝@Mike。 D,@Atabtab和@tbone的所有建議 - 他們是很好的建議。

0

你可以試試這個嗎?

select WI_NUM , COMPONENT_NUM , LOT_NUM 
from CONS 
where 
WI_NUM =NVL(:WI_NUM, WI_NUM) 
and COMPONENT_NUM =NVL(:COMP_NUM, COMPONENT_NUM) 
and LOT_NUM =NVL(:LOT_NUM, LOT_NUM) 

如果使用多值參數,看看到Optionla Multi-Value Parameter

+0

謝謝,這是很好的建議,但我試過,結果是一樣的。至於他們正在使用IS NULL的鏈接,我已經嘗試過了。 – wiciuo 2014-09-23 14:00:11

+0

@wiciuo數據庫中的WI_NUM,COMPONENT_NUM,LOT_NUM字段是否有很多NULL值? – Aftab 2014-09-23 14:25:47

+0

有一個在WI_NUM或COMPONENT_NUM沒有NULL值,也有LOT_NUM – wiciuo 2014-09-23 14:43:45