在SSRS中使用list参数

时间:2013-04-02 19:05:19

标签: sql-server-2008 reporting-services ssrs-2008

我需要能够设置SSRS参数以包含多个值。

在TSQL中,我可以使用where子句声明:

where Attribute in ('Value1', 'Value', 'Value3')

SSRS需要的是:

where Attribute in (@Attribute)

我挂断的地方是如何格式化参数值表达式,以便SQL将其视为:'Value1', 'Value', 'Value3'

我有幸运气使where子句仅查看第一个值,但我需要它来查看所有3.我如何格式化表达式来做到这一点?

我只是允许它接受多个值,并单独检查每个值,但我需要下拉列表才能拥有组。因此,如果用户选择GroupA,则where子句使用:IN ('Value1', Value2'),如果用户选择GroupB,则where子句使用IN的不同列表。

希望这只是正确格式化表达式的问题。

1 个答案:

答案 0 :(得分:1)

好吧,如果你没有关于组的要求,那么这不是问题,因为您只需要将参数设置为多值的参数,并在数据集查询中执行WHERE Attribute in (@Attribute)。但考虑到这一要求,我能想到的唯一方法就是拥有两个多值参数:@Group@Attribute。您需要使@Attribute不可见,并创建一个数据集来填充它。该数据集将是这样的:

SELECT Attribute
FROM Attributes
WHERE Group IN (@Group)

为报告数据创建另一个数据集:

SELECT <all your data>
FROM YourTable
WHERE Attribute IN (@Attribute)