【问题标题】:SSRS query report parameter visibility when there is no value无值时SSRS查询报告参数可见性
【发布时间】:2016-01-20 13:13:41
【问题描述】:

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

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

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

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

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

如何让空的@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

.

【问题讨论】:

  • 我们不是盲人,至少不是我们所有人......
  • 别忘了,不是瞎子,也不是好笑……不过也有这类cmet的其他论坛,也别忘了。
  • 在没有# 的情况下格式化您的帖子,阅读起来会容易得多。不要难为您提供帮助。
  • 发布您用于填充参数选项的代码 - 当没有数据要返回时,应该可以包含“不需要值”选项。

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


【解决方案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 

【讨论】:

  • 嗨@Henrik,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己赢得了一些声誉。
  • HI @AHiggins 实际上它并没有解决问题,但我喜欢它并且它解决了一半,仍然给出参数丢失的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多