2016-11-18 50 views
0

我有一些維度的成員集,讓我們說[Dim]。[Dim]。[Dim]。然後,我寫了一個查詢,返回2016年的這個維度的所有元素的某種度量,假設有5個這樣的元素。Filter由currentMember.MemberCaption設置

我想要做的下一步是在該維度中找到第一個具有相同名稱的成員(與CurrentMember在行中相同),但在2015年。因此,我想計算一些關於2015年會員的措施,而不是2016年。

所以問題在範圍內 - 我不能生成這樣的集合,因爲CurrentMember的函數範圍將等於GENERATE的作用域,所以我無法提取當前行上的實際當前成員,並且我想找到「同樣以前的名字「的成員。

我可以用普通的MDX做到這一點,或者我應該採取一些解決方法,例如在t-sql視圖中查找這樣的「相同」元素並手動製作多維數據集中的子父母關係?我認爲第二種方法是非常不可取和醜陋的。

感謝。

回答

0

是否有一個原因,你不能只使用.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] 

或者,您在處理有在葉級多個重名的尺寸,這樣就可以不被實際維度成員匹配二○一五年至2016年的數字?

+0

是的,我沒有實體之間的關係。根據年份,表格中的每個實體都是唯一的ID。在您的查詢中,我無法定義上一年的維度成員與當前行中的特定成員有關。我必須找到它的名字。 – VasiliyKapitanskiy

+0

非常感謝。如何創建要在此名稱上鍵入的維度,並嘗試匹配?如果該ID特定於年份,則對於隨着時間的推移有用的維度而言,它不起作用。 – SebTHU