在我的SSRS 2008 R2报告中,我有一个多值@Status参数。这是数据集:
SELECT 1 AS ID, Description
FROM [ApplicationStatus]
WHERE StatusID IN (5, 6, 11, 14)
UNION
SELECT 2 AS ID, Description
FROM [ApplicationStatus]
WHERE StatusID IN (10)
在我的主ReportData数据集中,我有以下过滤器:
WHERE ((@Status IN (1) AND a.StatusID IN (5, 6, 11, 14))
OR (@Status IN (2) AND a.StatusID IN (10)))
当选择1和2作为@Status下拉列表中的值时,报告运行正常,但是当我选择内置的'(全选)'选项时,我收到以下错误消息:
数据集'ReportData'的查询执行失败。表达 在期望条件的上下文中指定的非布尔类型, 靠近','。
答案 0 :(得分:3)
多个值在@Status中,因此@status需要在IN之后,而不是之前。
WHERE (( 1 IN (@Status) AND a.StatusID IN (5, 6, 11, 14))
OR (2 In (@Status) AND a.StatusID IN (10)))