Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在滤波器中使用减法函数的SSRS_Sql Server_Visual Studio_Reporting Services_Sql Server 2012_Ssrs 2008 R2 - Fatal编程技术网

Sql server 在滤波器中使用减法函数的SSRS

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

我正在创建一份每月显示绩效的报告。我有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-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