手动将多个整数值传递给 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
我正在尝试将多个整数值传递给子报表,以便使用以下 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