2017-03-19 8 views
1

私は、列(DatetimeA)に基づいてフィルタを適用する必要がある状況があります。 DatetimeAの値は19990101(yyyyMMdd)の形式です。過去60日間のみ表示するようにデータをフィルタリングする必要があります。MDXクエリフィルタ

MDXクエリ:

SELECT NON EMPTY {Measures].[DateA] } ON COLUMNS 
    ,NON EMPTY { [Date].[DatetimeA].[DatetimeA].ALLMEMBERS) 
    }DIMENSION PROPERTIES MEMBER_CAPTION 
    ,MEMBER_UNIQUE_NAME ON ROWS 
    FROM (
    SELECT ([Date].[DatetimeA].& [20170118] : [Date].[DatetimeA].[20170318]) 
    ON COLUMNS 
    FROM [TABMODEL] 
    ) CELL PROPERTIES VALUE 
    ,BACK COLOR 
    ,FORE COLOR 
    ,FORMATTED_VALUE 
    ,FORMAT_STRING 
    ,FONT_NAME 
    ,FONT_SIZE 
    ,FONT_FLAGS 

どのように我々は唯一の最後の60日間表示するようにDatetimeA列をフィルタリングすることができますか?値をハードコーディングするのではなく、その日に基づいて変更する必要があります。 ssrsでは、これはdatetimeAのようなものです(format(dateadd( "d"、 - 60、today())、 "yyyyMMdd")と(format(dateadd( "d"、0、today())、 "yyyyMMdd" 。。!以下) してください上記のクエリの変更が含まおかげ

答えて

1

コードがSSAS側の動的なセットを生成する必要があります。

{ 
    StrToMember('[Date].[DatetimeA].[DatetimeA].&[' + Format(Now(),'yyyyMMdd') + ']') 
    : 
    StrToMember('[Date].[DatetimeA].[DatetimeA].&[' + Format(Now(),'yyyyMMdd') + ']').Lag(59) 
} 

プラス、あなたは現在を取得するにはSSRSパラメータを追加することができますdateとStrToMemberをMDXコードにも組み込みます。

関連する問題