我收到错误消息“在预期条件的上下文中指定的非布尔类型的表达式,靠近','” 在运行ssrs 2008 r2报告时。 嵌入在数据集中的sql是:
IF @reportID <> 0
BEGIN
SELECT 'Students report 1' AS selectRptName, 1 AS rptNumValue
UNION
SELECT 'Students report 2', 2
UNION
SELECT 'Students report 3', 3
UNION
SELECT 'Students report 4', 4
UNION
SELECT 'Students report 5', 5
ORDER BY selectRptName
END
当我声明@reportID
时,sql在管理工作室运行正常。
sql运行正常,我注释掉'IF @reportID <> 0'
。
@reportID
是传递给适用数据集的参数值。
@reportID
可以有多个值。
因此,你能告诉我sql和/或告诉我我需要做些什么才能解决这个问题吗?
答案 0 :(得分:0)
要检查多值参数的值,您需要使用IN
运算符。
IF 0 NOT IN (@reportID)
但是听起来我觉得你正在尝试检查已经为多值参数分配了多少个值,而你却无法直接在SQL查询中这样做。
在数据集属性中,转到“参数”部分,然后添加一个新参数,该参数的值由表达式设置。然后使用此表达式将该参数设置为多值参数中的项目数:
=Parameters!reportID.Count
然后,您可以在SQL中使用该参数来检查分配给多值参数的值的数量。
有关SSRS中的Parameters集合的详细信息,请参阅此MSDN页面:Parameters Collection References (Report Builder and SSRS)