SSRS将日期列分为几年

时间:2017-01-27 08:22:11

标签: reporting-services

我有一个带有日期列的SSRS表,我希望将其排列到不同年份的列中,我在哪里过滤列? 我试图用以下表达式过滤细节组:

=Year(Fields!Ontledingsdatum.Value) = year(now) -5

但是得到以下错误:

  

无法比较System.Boolean和System.String类型的数据。

另外,我认为将过滤器放在详细信息组中是不正确的。 此致

1 个答案:

答案 0 :(得分:0)

在您的错误消息中,您似乎正在尝试在分组表达式中进行比较。这不是分组的工作方式。

从分组表达式中删除= year(now) -5,您将获得基于Ontledingsdatum字段年份的组。如果您只想显示最近5年的数据,则还需要过滤数据。

理想情况下,您会在数据返回报表之前在数据集中对此进行过滤。如果您的数据集是基于SQL的,则可以添加where Ontledingsdatum >= dateadd(yyyy,datediff(yyyy,0,getdate())-5,0)以获取5年前年初的所有值。

如果您需要在SSRS报告中进行过滤,可以通过在数据集或表的属性中添加过滤器(不在分组中)为数据集或表添加过滤器,并指定与过滤器相同的过滤器SQL。像下面这样的东西应该这样做:

表达:=Fields!Ontledingsdatum.Value
输入:Date/Time
接线员:>=
价值:=cdate(year(now)-5 & "/01/01")