如何在SSRS参数中组合数据类型?

时间:2017-06-30 03:16:07

标签: reporting-services ssrs-2012

背景 - 我正在尝试使用包含多个参数的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

1 个答案:

答案 0 :(得分:0)

两种方法。 1.确保为参数提供值的数据集有两列,一列ID列用于实际在数据集中进行过滤/连接,另一列是用户可见的标签。像

这样的东西
ID         Label
'Any'      0
'1234567'  1234567
'1234568'  1234568
  1. 如果您的主数据数据集是一个查询(不是存储过程),那么您可以简单地拥有一个如上所述的参数数据集,但没有“任何”行。然后将可用值设置为参数数据集,将默认值设置为相同的参数数据集。默认情况下,将选择所有参数。
  2. 在主数据数据集中,查询将与

    一致
    SELECT * FROM myTable WHERE myColumn IN (@myParameterName)
    

    SSRS会将参数中的选定值转换为逗号分隔值列表,并将其注入查询中。