背景 - 我正在尝试使用包含多个参数的Report Builder 3.0在SSRS中创建报告。该请求是在打开报表时显示所有数据行。然后,最终用户可以选择一个或多个参数以减少显示的结果。我可以使用类似下面的内容来使用它。
参数的数据集,其中可用值来自查询(数据集类型为文本)
对于数字字段:
SELECT 0 'FACG' UNION ALL SELECT DISTINCT STR(ACG) FROM STG_CSI_SA_CONFIRM
对于包含文字的列:
SELECT 'Any' 'FunderName' Union All Select DISTINCT NAME FROM STG_CSI_SA_CONFIRM
在报告的数据集中,我有:
WHERE ('Any' IN (@FrName) or Fname.name in (@FrName)) AND ( 'Any' IN (@FACG) OR FLIST.FACG IN (@FACG))
结果是两个参数框,一个表示0,一个表示任意,报表首次打开时运行。然后,最终用户可以从FACG中选择一个或多个数字,或从FRName中选择一个或多个名称。
我的问题是,如何调整第一个参数以显示“Any”而不是零作为默认值?返回的所有值都是7位数的整数。当我只是将0更改为Any时,我收到有关转换数据类型的错误消息。如果我使用STR(),我可以从SQL服务器中获取一个列表,我得到了一个我期望的列表。 (Any,1234567,1234568等)但是我无法将该列表用于SSRS。
由于
[R
答案 0 :(得分:0)
两种方法。 1.确保为参数提供值的数据集有两列,一列ID列用于实际在数据集中进行过滤/连接,另一列是用户可见的标签。像
这样的东西ID Label
'Any' 0
'1234567' 1234567
'1234568' 1234568
在主数据数据集中,查询将与
一致SELECT * FROM myTable WHERE myColumn IN (@myParameterName)
SSRS会将参数中的选定值转换为逗号分隔值列表,并将其注入查询中。