2017-07-20 35 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