我需要编写一个ssrs表达式来检查参数是否存在,如果不存在则应该选择另一个值。
我的SSRS报告中有一个Year参数。 year参数应使用当前年份(= Year(Now()))作为默认值。问题是,1月刚刚开始,我们还没有2018年的数据,所以它会返回一个错误。如何编写一个默认值表达式,如果它存在,则采用当前年份,否则是前一年?
先谢谢你们
答案 0 :(得分:0)
如果当前年份的数据不可用,则不清楚您希望将其设置为默认值。
此解决方案测试数据是否存在,然后如果数据不存在则会提供最新数据。使用这种方法很容易返回任何你喜欢的东西。
我刚刚创建了一个用于测试的表变量,显然将其换成了真正的表。
-- 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