Sql server 在滤波器中使用减法函数的SSRS
我正在创建一份每月显示绩效的报告。我有200101年的历史数据。当我创建和预览报告时,所有数据都显示从200101到最近一个月 我想将月份数限制为最近的13个月 我试着用这个表达Sql server 在滤波器中使用减法函数的SSRS,sql-server,visual-studio,reporting-services,sql-server-2012,ssrs-2008-r2,Sql Server,Visual Studio,Reporting Services,Sql Server 2012,Ssrs 2008 R2,我正在创建一份每月显示绩效的报告。我有200101年的历史数据。当我创建和预览报告时,所有数据都显示从200101到最近一个月 我想将月份数限制为最近的13个月 我试着用这个表达 =max(Fields!month.Value)-13 这不起作用并显示错误。理想情况下,您的表达式应该是 =max(Fields!month.Value-100-IFF(Fields!month.Value%100>1,1,88)) 100表示1年,1表示当月;当月份为201701时,88实际上是100-1
=max(Fields!month.Value)-13
这不起作用并显示错误。理想情况下,您的表达式应该是
=max(Fields!month.Value-100-IFF(Fields!month.Value%100>1,1,88))
100表示1年,1表示当月;当月份为201701时,88实际上是100-12,那么您需要的值是201512(往回13个月)
对于更多的检查,我们需要检查是否有从200101开始的13个月的数据
=IFF(Fields!month.Value>200201,max(Fields!month.Value-100-IFF(Fields!month.Value%100>1,1,88)),200101)
一个DATEADD()
函数怎么样?(如果我理解你的问题)
另一种选择是在SSRS或SQL中过滤数据
SSRS筛选器将在今天
和DATEADD()函数之间使用(=DATEADD(DateInterval.Month,-13,TODAY)
)
或在SQL中进行筛选:
WHERE Month BETWEEN SELECT DATEADD(MONTH,-13,GETDATE()) AND GETDATE
你看到的错误是什么?
WHERE Month BETWEEN SELECT DATEADD(MONTH,-13,GETDATE()) AND GETDATE