【发布时间】:2018-12-11 11:05:26
【问题描述】:
在我正在构建的 SSRS 报告中,我有如下查询:
SELECT ID, Name
FROM TableA
WHERE Name IN (@name)
然后在 SSRS 中,我将参数可用值设置为“从查询中获取值”,值字段将如下所示:
'A','B','C'
'D','E','F'
'G','H','I'
标签字段是这样的:
Label A
Label B
Label C
当我运行查询时
SELECT ID, Name
FROM TableA,
WHERE Name IN ('A','B','C')
在 SQL Management Studio 中返回了正确的结果,但是,报告没有返回任何内容。如何在 IN 语句中获取格式正确的值?
【问题讨论】:
-
在你的最后一个例子中,你的参数列表中的 A、B 和 C 是单独的项目吗?参数是多值参数吗?
-
A, B and C are separate items in the parameter list, but all values are to be used in the query when Label A is chosen
-
您可以发布报告参数屏幕的屏幕截图吗?如果将 where 子句更改为 WHERE Name = @name,会发生什么?在报告参数屏幕上的“常规”部分是否有勾选“允许多个值”?
-
您必须在 sql 端创建一个拆分函数,该函数将采用“,”分隔值。并且您的代码将起作用。例如:将类似于... WHERE Name IN (select item from dbo.fn_split @name) 。显然不会给你写函数。
-
@BobF 如果他允许多个值,它们将以 'A,B,C' 而不是 'A', 'B', 'C' 的形式出现;所以 op 的 in 子句不起作用。
标签: reporting-services ssrs-2008 ssrs-2008-r2