手动将多个整数值传递给 SSRS sureport

Manually pass multiple integer values to a SSRS sureport

我正在尝试将多个整数值传递给子报表,以便使用以下 SQL 请求:

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

我想将 3 个整数值传递给@Code:1,2 和 3

我尝试使用 Split() 和 Join() 的各种组合,但 none 奏效了。

您无需执行任何操作。如果您的参数设置为多值并从查询或整数列表中获取它的值,则 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,也无需更改数据集参数。它会起作用的。

当我在 SSRS 中使用多值参数时,我必须在查询中使用 table 值函数。本质上,它将您的参数变成一个 table ,您可以在其上进行 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