2017-09-13 11 views
0

이것은 내가 작성한 다른 질문 (MDX - Running Sum over months limited to an interval)과 비슷하지만 거기에서 궤도를 벗어나고 있다고 느낍니다. 다시 시작하겠습니다. 는 내가 짧은 간격으로 필터링 할MDX - 다른 날짜 간격으로 다른 측정 값 필터링

MEMBER [Measures].[m_active] AS ([Measures].[CardCount], [Operation].[Code].[ACTIVATION]) 

다른 계산 측정 내가 원하는 그 (의는 그가 매개 변수화되어 2016년 1월 10 20 년 8 월 2017 년 가정 해 봅시다) 계산 된 측정이 마지막으로 필터의 끝 (이 경우 2017년 8월 20일) 내지 (2010 1월 1일) 날짜 차원의 처음부터 필터링,이 법안 내가이 계산 한 열에서 모든 전례

MEMBER [Measures].[tot_active] AS (
    SUM({[Calendar.YMD].[2010].Children}.Item(0):[Calendar.YMD].CurrentMember, ([Measures].[CardCount], [Operation].[Code].[ACTIVATION])) 

의 합을 실행 치수 및에 행이 내가 (작은 간격 범위에서) 달이와 내가 처음 멤버 완벽 WHERE 절에 날짜 범위를 넣으면 또 다른 차원이

SELECT 
    {[Measures].[m_active], [Measures].[tot_attive]} ON COLUMNS, 
    NonEmptyCrossJoin(
     {Descendants([Calendar.YMD].[2016].[Gennaio]:[Calendar.YMD].[2017].[Agosto], [Calendar.YMD].[Month])}, 
     {Descendants([CardStatus.Description].[All CardStatus.Descriptions], [CardStatus.Description].[Description])} 
    ) on ROWS 

을 crossjoined하지만 난 두 번째 파괴, 어떻게 두 번째를 만들 수 있습니다 회원은 WHERE 절을 무시합니까? 아니면 다른 해결책이 있습니까?

+0

당신이해야 할 사항은 무엇에 대한 개월? 현재 측정 날짜 범위 내에서 개월 만 표시 하시겠습니까? –

+0

예 행이 있습니다 - CardStatus - 측정 값이지만 간격은 하루입니다 (주먹과 마지막 달이 한정되어 있음) 어떻게 든 계산 된 계산 멤버에 "모든 날짜"를 포함하여 해결책을 찾았습니다 WHERE 절의 다른 측정 값에 대한 원하는 간격을 정의하여 계산합니다. – Crysis85

+0

8 월 20 일을 설정하면 전체 월 값이 아닌 8 월에 대해 1-20 일의 합계 값을 얻고, ? 당신이 직접 해결한다면 그것은 중요하지 않습니다. –

답변

0

테스트하지 않고 약간의 동작을 확신 할 수 없지만 필터를 WHERE 절에서 subselect으로 옮겨보십시오.

부속 선택은 다음과 같이 형성된다 :

... 
FROM (
    SELECT 
     <date range for filter> ON 0 
    FROM cubeName 
)