【问题标题】:ssrs if exists then else expression for default parameter valuessrs 如果存在则默认参数值的表达式
【发布时间】:2018-01-24 09:37:36
【问题描述】:

我需要编写一个 ssrs 表达式来检查参数是否存在,如果不存在则应该选择另一个值。

我的 SSRS 报告中有一个年份参数。 year 参数应使用当前年份 (=Year(Now())) 作为默认值。问题是,一月刚刚开始,我们还没有 2018 年的数据,所以它会返回错误。如何编写一个默认值表达式,如果存在则取当前年份,否则取上一年?

提前谢谢大家

【问题讨论】:

  • >>>我们还没有 2018 年的数据

标签: sql-server stored-procedures reporting-services


【解决方案1】:

如果当前年份没有可用数据,则不清楚您希望将什么设置为默认值。

此解决方案测试数据是否存在,如果不存在,则为您提供最新的数据。使用这种方法可以轻松返回您喜欢的任何内容。

我刚刚创建了一个用于测试的表变量,显然将其替换为您的真实表。

-- uncomment @myParameter declaration for testing
--DECLARE @myParameter int = year(getdate())

-- Just some data to test against.
DECLARE @myData TABLE (PeriodID int, SomeValue int)
    INSERT INTO @myData VALUES (2015, 8), (2016, 10), (2017, 15)

IF Exists(SELECT * FROM @myData WHERE PeriodID = @myParameter)
    BEGIN
       SELECT @myParameter as resultPeriodID
    END
ELSE
    BEGIN
       SELECT MAX(PeriodID) as resultPeriodID FROM @myData
    END

【讨论】:

  • 我专门寻找 SSRS 表达式而不是查询。
  • 如何在没有查询的情况下从表达式中检查数据?如果您如上所述创建数据集,则在参数属性中设置查询的默认值,将其指向该数据集,它将为您提供所需的内容。
猜你喜欢
  • 2010-11-22
  • 2011-07-15
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多