2017-03-10 13 views
0

私は、今年の忙しい時期に登録した学生の数に基づいて、私の組織が予約する必要がある部屋の数を予測しようとしています。MDXクエリーのParallelPeriodとCurrentMember

この問題の最初の部分は、今年の学生数と昨年の相対的な減少/増加を計算し、それを使って今年の学生数を推定します。この目的を達成するために

、私は次のように測定しようとしています:

  1. 例えば開始日の範囲に至るまでの年の数週間で入学者の累計します何週間1,2,3に在籍する学生... 2016年の指定した年
  2. 学生数の前の年間の割合増加/減少を計算するために、ここで10月から12月の間になります誰

私はCurrentMemberとしてParallelPeriodのメンバーの式を設定したとき、私は計算メンバーの#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]のような値に変更すると、エラーが表示されなくなります。なぜですか?今年の各週の行の比較として、前年の同じ週を取得するにはどうすればよいですか?

さらに、同じ週の前年に対する割合の変化率を、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