2017-01-27 58 views
0

我有一個SSRS表,其中包含日期列,我希望將其排列成不同年份的列,在哪裏過濾列? 我試圖篩選細節組枝條下面的表達式:SSRS將日期列分成幾年

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

但得到以下錯誤:

無法比擬類型System.Boolean和System.String的數據。

另外,我認爲把過濾器放在details組中是不正確的。 Regards

+0

爲什麼不使用矩陣,而不是表上年度分組的(!字段Ontledingsdatum.Value) ? – niktrs

回答

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")

+0

謝謝。我試圖達到的目標是每年有五列。在每一欄下只顯示那一年的數據。 Regards – Gideon

+0

@Gideon每年有5個專欄?你怎麼把今年分成五個? – iamdave

+0

你好iamdave。是的,我把這一年分成五年。我已經在SQL中完成了這一點。感謝您的幫助。 – Gideon

相關問題