我有一个带有日期列的SSRS表,我希望将其排列到不同年份的列中,我在哪里过滤列? 我试图用以下表达式过滤细节组:
=Year(Fields!Ontledingsdatum.Value) = year(now) -5
但是得到以下错误:
无法比较System.Boolean和System.String类型的数据。
另外,我认为将过滤器放在详细信息组中是不正确的。 此致
答案 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")