没有值时SSRS查询报告参数可见性

时间:2016-01-20 13:13:42

标签: sql sql-server tsql reporting-services ssrs-2012

我有一个包含4个多值参数的报告,其中的值根据从第一个参数中选择的值填充:

示例:@Param1 = Forest, @Param2 = Lake , @Param3 = Fish

根据所选的值,最后一个参数可能没有值。

示例:@Param1 = Desert, @Param2 = Sand, @Param3 = Null (Empty)

在这种情况下,在Reporting Services中显示@param3只显示一个空参数框,用户开始怀疑是否缺少数据等等。

如何让空的@Param3在t-sql代码中获得某种禁用?

这是@ param3:

的查询
SELECT DISTINCT Column3
FROM TABLE
WHERE Column1 = (@param1) AND
Column2 = (@param2)
ORDER BY Column3

主数据集查询具有以下谓词:

FROM TABLE
WHERE (Column1 = (@param1) or (@param1) is not null) AND
       Column2 = (@param2) or (@param2) is not null)
      AND (Column3 IN (@Param3) OR (@Param3) !='') AND 
(Column4 IN (@param4)) OR (@param4 !='')
ORDER BY Month

1 个答案:

答案 0 :(得分:1)

尝试在脚本中添加“虚拟”值,并且只在没有其他可用值时才返回它:

SELECT DISTINCT Column3
FROM TABLE
WHERE 
    Column1 = (@param1) AND
    Column2 = (@param2)
UNION ALL 
SELECT 'No Value Needed'
WHERE NOT EXISTS 
  (
    SELECT 1
    FROM TABLE 
    WHERE 
        Column1 = (@param1) AND
        Column2 = (@param2)
  )
ORDER BY Column3