在ssrs 2008 r2中,在期望条件的上下文中指定的非布尔类型的表达式,在','附近

时间:2014-09-15 19:48:03

标签: tsql reporting-services ssrs-2008-r2

我收到错误消息“在预期条件的上下文中指定的非布尔类型的表达式,靠近','” 在运行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和/或告诉我我需要做些什么才能解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

要检查多值参数的值,您需要使用IN运算符。

IF 0 NOT IN (@reportID)

但是听起来我觉得你正在尝试检查已经为多值参数分配了多少个值,而你却无法直接在SQL查询中这样做。

在数据集属性中,转到“参数”部分,然后添加一个新参数,该参数的值由表达式设置。然后使用此表达式将该参数设置为多值参数中的项目数:

=Parameters!reportID.Count

然后,您可以在SQL中使用该参数来检查分配给多值参数的值的数量。

有关SSRS中的Parameters集合的详细信息,请参阅此MSDN页面:Parameters Collection References (Report Builder and SSRS)