2017-07-20 33 views
1

我想整數倍值傳遞給子報表,以便使用下面的SQL請求:手動傳遞多個整數值的SSRS sureport

SELECT * 
FROM Table as T 
WHERE Code IN (@Code) 

我想通過3個整數值@代碼:1,2和3

我試圖使用Split()和Join()的各種組合,但都沒有工作。

+0

您嘗試通過的值是從主報告的參數中選擇的? – niktrs

回答

1

你不需要做任何事情。如果您的參數設置爲多值並從查詢或整數列表中獲取它的值,則SSRS會自動將逗號分隔的值列表插入到主數據集查詢中。

在你的情況下,如果值1,2 & 3選擇和你主數據集看起來像你的榜樣

SELECT * 
FROM Table as T 
WHERE Code IN (@Code) 

那麼什麼是真正被傳遞到服務器應該是這樣..

SELECT * 
FROM Table as T 
WHERE Code IN (1,2,3) 

無需進行JOINS或SPLITS,也無需更改數據集參數。它會工作。

0

當我在SSRS中使用多值參數時,我不得不在查詢中使用表值函數。實質上,它將您的參數變成一張表格,您可以將其添加到INNER JOIN上。例如:

SELECT * 
FROM Table as T 
INNER JOIN tablevaluefuntion(@Code,',') as P--the ',' is the delimiter from your list 
WHERE t.code = p.value