2017-03-10 1 views
0

올해의 바쁜 부분에 등록한 학생 수를 기준으로 내 조직에서 예약해야하는 방의 수를 예측하려고합니다.MDX 쿼리의 ParallelPeriod와 CurrentMember

이 문제의 첫 번째 부분은 올해의 학생 수의 상대적인 감소/증가를 계산하고이를 올해의 학생 수를 추정하는 데 사용하는 것입니다.

  1. 시작의 범위에 이르기까지 올해의 주 재학생의 누계는, 예를 들어 날짜 :이를 위해

    , 나는이 다음 측정하려고 몇 주 1,2,3에 등록 된 학생 ... 2016의 해당 연도
  2. 학생 수의 이전 년 동안 증가/감소 비율을 계산 여기 10 월과 12월 사이에 누가 될지

내가 CurrentMemberParallelPeriod의 멤버 식을 설정했을 때 계산 된 구성원에 대한 #Error을 얻고있다, 그러나

WITH MEMBER [Measures].[Period Growth] AS 
(
    [Measures].[Enrolments By Week], 
    ParallelPeriod([Weekly Enrolments Date].[ISO Week Calendar].[ISO Year], 
     1, 
     [Weekly Enrolments Date].[ISO Week Calendar].[ISO Week].currentmember) 
) 
SELECT NON EMPTY { [Measures].[Enrolments By Week], [Measures].[Period Growth] } ON COLUMNS, 
NON EMPTY { FILTER([Weekly Enrolments Date].[ISO Week Calendar].[ISO Week].&[201738] : 
        [Weekly Enrolments Date].[ISO Week Calendar].[ISO Week].&[201752], 
     Cint([Term Record Creation].[ISO Week Number Of Year].CurrentMember.Member_Key) <= 10 --Cint(STRTOMEMBER(@ToISOWeekNumberOfYear, CONSTRAINED).Member_Key) 
     OR 
     Cint([Term Record Creation].[ISO Year].CurrentMember.Member_key) < 
     Cint([Term Start Date].[ISO Year].CurrentMember.Member_key)) } ON ROWS 
FROM [Enrolments] 

: 나는 다음과 같은 쿼리를 가지고있다. .&[201642]과 같은 값으로 CurrentMember을 변경하면 오류가 사라집니다. 왜 그런가요? 당해 년도의 매주 행을 비교할 때 전년도 같은 주를 어떻게 얻을 수 있습니까?

또한 0으로 나누는 오류를 피하면서 같은 주에 전년 대비 변동 비율을 어떻게 얻을 수 있습니까? 나 여기에

+1

오류 란 무엇입니까? r "#"오류 값 뒤에 있습니까? SSMS를 사용하는 경우 #Error가 포함 된 셀 위에 마우스 포인터를 올려 놓아야합니다. – SebTHU

답변

1

는 수준과 같습니다

[Weekly Enrolments Date].[ISO Week Calendar].[ISO Week] 

그래서 그래이 유효하고 거기에 오류가되지 않습니다 :

[Weekly Enrolments Date].[ISO Week Calendar].[ISO Week].&[201642] 

하지만이 CURRENTMEMBER 기능을 할 수 있다고 생각하지 않습니다 레벨 표현식에 적용됩니다. 다음에 단축하면 더 행복 할 수 있습니다.

[Weekly Enrolments Date].[ISO Week Calendar].currentmember