2017-05-11 8 views
0

私はMDXの初心者です。 Adventure Worksキューブを使用して前年からの収益の増加を計算しようとしていますが、2年間の収益の差を示す列が表示されます。今まで私は手動で差を計算することができました:MDXでシフトされた期間を選択する方法は?

(KpiValue("Revenue"), [Date].[Fiscal Year].&[2009]) - KpiValue("Revenue"), 
[Date].[Fiscal Year].&[2008] 

(KpiValue("Revenue"), [Date].[Fiscal Year].&[2008]) - KpiValue("Revenue"), 
[Date].[Fiscal Year].&[2007] 

(KpiValue("Revenue"), [Date].[Fiscal Year].&[2007]) - KpiValue("Revenue"), 
[Date].[Fiscal Year].&[2006] 

これをより効率的に計算する方法を教えてください。私は並列処理機能を使うことができると思いますが、どのように動作するのか分かりにくいです。

ありがとうございました!

編集:ここでは

は、私が使用するコードです:

with member [diff] as 
(KPIValue("Revenue"), [Date].[Fiscal Year].&[2008]) - 
(KPIValue("Revenue"), [Date].[Fiscal Year].&[2007]) 

Select 
{diff} on 0 
FROM [Adventure works] 

答えて

0

PrevMemberを使用してみてください:

With 
Member [Measures].[Diff] as 
[Measures].[Revenue] - ([Date].[Fiscal Year].PrevMember,[Measures].[Revenue]) 

Select 
[Measures].[Diff] on 0, 
[Date].[Fiscal Year].[Year].Members on 1 
From [Adventure Works] 
+0

あなたはどこかCURRENTMEMBERが不足していませんか? – mxix

+0

いいえ、私ですか? [Date]。[会計年度] .CurrentMemberは、指定されていない場合、OLAPエンジンによって自動的にpikedされます。 –

+0

@DanyloKorostil ExplicitはImplicitよりも優れています。多くの状況で、OLAPエンジン*は自動的にCURRENTMEMBERを使用しませんが、ALLメンバーを使用します – whytheq

関連する問題