2017-05-08 10 views
0

4つのフィールド(日付、SeccurityName、FiledName、Value)を持つデータセットがあります。私のデータセットクエリでは、データをフィルタリングして、ファイル名(Last Price)の特定の値を持つレコードのみを取得します。以下は私のデータセットのサンプルです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 

3年前から、私はテーブル内のセキュリティ名を表示する必要が私のレポート、最後の値、ヶ月前からの値、前年からの値と値で誰かが私にこのフォーマットを構築する最善の方法を与えることができます。

答えて

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をValuesに集約するために使用されます。

最後の日付をパラメータとして(デフォルトの昨日ですか?)、式を簡単に作成できるようになると思います。また過去の日付を見ることもできます必要なもの。