多值参数SSRS

时间:2013-11-20 14:21:59

标签: sql tsql reporting-services ssrs-2008

我有一个多值参数@products,主数据集必须根据提供给@products的值来获取特定ID的数据。 我将@products的可用值作为特定值(a,b和c)。主查询类似于

select version,date from table
where ( @products=a and id in('1','2','3')
or @products=b and id in ('4','5','6')
or @products=c and id in('7','8','9'))

当仅选择1个@products值但在选择多个值时抛出错误时,此方法正常。

任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

如果要将多个值传递给@products,则不希望在where子句中检查@products是否等于某个值,因为其中有多个值。也许可以像这样重写查询:

select version, date from table 
where ( ('a' in (@products) and id in ('1','2','3'))
     or ('b' in (@products) and id in ('4','5','6') 
     or ('c' in (@products) and id in ('7','8','9')))

我假设您传递给@products的值是字符串/文本。我不确定你为什么把ID作为文本,因为我猜他们是整数,但我把它们留在查询中,因为我之前没有那些信息。