我有一张桌子,我正在建立一份报告。大约有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作为默认值。我只想使用单个参数。
还有其他想法吗?
谢谢。
答案 0 :(得分:0)
您的数据集查询需要是有效的SQL。您可以使用数据集的表达式,并使用SSRS表达式语言生成所需的SQL。
类似的东西:
="SELECT * FROM TABLE " + IIF(Value = True," WHERE 'A' = 'B'","")
然而,我认为他们很难与之合作。它们更难理解,维护时间更长,更容易包含错误 我发现将参数传递给服务器上的SQL存储过程更简单,更安全,特别是如果您使用的是TEXT BOX输入字段。