2017-03-19 135 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 

我們怎樣才能篩選DatetimeA欄僅顯示過去60天?我不需要對價值進行硬編碼,而是需要根據當天情況進行更改。在ssrs中,這將是類似DatetimeA(格式(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參數來獲得當前日期和StrToMember到MDX代碼。