2017-05-08 70 views
0

我有一個包含4個字段(Date,SeccurityName,FiledName,Value)的數據集。在我的數據集查詢中,我過濾數據以僅將帶有特定值的記錄帶入提交的名稱(最新價格)。以下是我的數據集的示例SSRS報告表達式設置

Date SecurityName FiledName Value 
5/5/2016 A   LastPrice 20.01 
5/6/2016 A   LastPrice 19.8 
5/7/2016 A   LastPrice 19.9 
5/5/2016 B   LastPrice 43.1 
5/6/2016 B   LastPrice 43.5 
5/7/2016 B   LastPrice 43.7 

在此數據集中,我爲過去5年每個工作日的每個安全性提供了數據。 在我的報告,我需要在一個表中顯示安全名字,最後一個值,從一個月前的值,從一年前的價值,從三年前的價值

Security name  LastPrice  1M   1Year    3Years 
    A     20.1  18.8   19.01    16.05 

我將不勝感激,如果有人可以給我最好的方式來建立這種格式。

回答

0

我會將您的表分組在安全名稱上。這將在同一行中彙總具有相同安全名稱的所有記錄。

然後對於每個日期/值列,創建一個IIF語句,你想要的日期進行過濾:

=MAX(IIF(Fields!Date.Value = Parameters!LastDate.Value, Fields!Value.Value, NOTHING)) 

上個月(和其他日期)有異曲同工之處:

=MAX(IIF(Fields!Date.Value = DATEADD("M", -1, Parameters!LastDate.Value), Fields!Value.Value, NOTHING)) 

MAX用於將NOTHINGS與值進行聚合。

我認爲最好將Last Date作爲一個參數(默認爲昨天?),以便更容易地創建表達式,並且如果您有過時日期,您也可以查看過去的日期需求。