SSRS 2008:是否可以在参数中指定整个where子句?

时间:2018-04-09 21:57:52

标签: reporting-services ssrs-2008

我有一张桌子,我正在建立一份报告。大约有10个字段,但其中4个字段可能包含用户希望过滤报告的值。

我在想我可以创建一个带有标签/值对列表的参数,参数项的值部分将是基础数据集的实际where子句,如:

@filter
label/value
exceptions/where error_field like '%exception%'
counts/where count_field > 100
2016/where year_field = 2016

我尝试过数据集:

select error_field, count_field, year_field from mytable
@filter

我也试过了(让 除了参数值):

select error_field, count_field, year_field from mytable
where @filter

两个数据集查询都无法保存。我想我可以在数据集查询语句中包含所有变化的where子句,但它可能需要不同的参数,但它们如何为空,除非我使用1 = 1作为默认值。我只想使用单个参数。

还有其他想法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您的数据集查询需要是有效的SQL。您可以使用数据集的表达式,并使用SSRS表达式语言生成所需的SQL。

类似的东西:

="SELECT * FROM TABLE " + IIF(Value = True," WHERE 'A' = 'B'","")

然而,我认为他们很难与之合作。它们更难理解,维护时间更长,更容易包含错误 我发现将参数传递给服务器上的SQL存储过程更简单,更安全,特别是如果您使用的是TEXT BOX输入字段。