2017-03-19 3 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"와 (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 코드에도 입력하십시오.