2016-11-18 4 views
0

私はいくつかの次元のメンバのSETを持っています。[Dim]。[Dim]。[Dim]。次に、このディメンションのすべての要素を何らかの対策の2016年に返すクエリを書きましたが、そのうちの5つがあるとしましょう。フィルタSET currentMember.MemberCaption

次のステップでは、この次元の最初のメンバーを同じ名前(行のCurrentMemberと同じ)で検索しますが、2015年になります。その結果、私は2015年のメンバーではなく2016年のメンバーに関するいくつかの尺度を計算したいと思っています。

問題があります - CurrentMemberの関数スコープがGENERATEのスコープと等しいので、私はそのようなセットを生成できません。そのため現在の行の現在のメンバーを抽出できず、同じ前の名前で "メンバー。

私はプレーンなMDXでこれを行うことができますか、t-sqlビューでそのような "同じ"要素を見つけ、手作業でキューブの子 - 親関係を作成するような回避策を講じなければなりませんか?私が思う第二のアプローチは非常に望ましくない、そして醜いです。

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

答えて

0

Time(Year、I guess)ディメンションで.PrevMemberを使用できない理由はありますか?

WITH MEMBER [Measures].[SomePrevYearCalculation] 
AS ([Time].[Year].CurrentMember.PrevMember,[Measures].[AMeasure]) 
SELECT 
{[Measures].[AMeasure],[Measures].[Some2015Calculation]} ON 0, 
[[Some complicated dimension stuff]] ON 1 
FROM Cube 
WHERE [Time].[Year].[2016] 

それとも、実際のディメンション・メンバーによって2015年2016年までの数字が一致しないことができるようにあなたは、リーフレベルで複数の重複した名前を持つディメンションを扱っていますか?

+0

はい、エンティティ間の関係はありません。テーブルの各エンティティは、年に応じて一意のIDです。あなたの質問では、前年のディメンションのメンバーが現在の行の特定のメンバーに関係するものを定義することはできません。私は名前でそれを見つけなければなりません。 – VasiliyKapitanskiy

+0

これは明らかです。このNameに合わせるディメンションを作成してみましょう。 idが年に固有の場合は、時間の経過と共に有用なディメンションのディメンションキーとして使用できません。 – SebTHU