2012-04-26 60 views
1

我還是MDX的新手,所以我不確定是否有簡單的方法,或者是一種不太容易的方式來完成我所要求的,但是這裏有一個我想爲我的MDX查詢做什麼的模糊描述。我有兩套,兩者在相同的層次結構或堂兄弟中都沒有直接關係,儘管可能會有一個「家庭」電話,我不知道這會做我想做的事情。基於另一個集合的名稱篩選MDX集

[Company].[Parent Company].[Parent Company]檢索第二組中公司的所有成員公司的所有成員。

[Company].[Company].[Company]檢索一組所有公司本身的成員,包括父母本身。

我嘗試[C].[C].[C]集過濾掉,以包括在我的MDX查詢成員的[Parent Company]的任何實例。我用Filter()嘗試了一些奇怪的東西,但一直搞亂set/tuples或者得到錯誤的數據。
這些套件沒有祖父母/多代人的欺騙手段,只有兩個層面值得擔心(公司及其潛在的父母,可能沒有)。如果多維數據集格式化得更好,如果它們處於層次結構中將會很不錯,但這不是這種情況。

輸出示例:的

  • 成員[Company].[Parent Company].[ParentCompany] = {A,C,E}的[Company].[Company].[Company] = {A,B,C,d,E,F,G}
  • 成員

    然後我想要一個返回以下內容的集合:{B,D,F,G}就是這樣。

    任何幫助,將不勝感激!

  • +0

    你可以列出一些示例數據顯示所需的輸出和要排除什麼? – Rick 2012-04-26 11:50:28

    +0

    剛剛編輯的問題包括理論集和期望的輸出。謝謝! – 2012-04-26 14:32:37

    +0

    這將是非常具有挑戰性的,大多數普通的MDX函數不能針對字符串標籤,而是針對唯一的名稱,在這種情況下,它們會因爲來自不同的層次結構而有所不同。您是否能夠在維度中創建實際的父/子層次結構?如果是這樣,那麼過濾父母就很容易了。 – Rick 2012-04-26 18:07:26

    回答

    1

    你可以做到這一點,而無需使用MEMBER_NAME:

    Exclude([Company].[Company].[Company].Members, Extract([Company].[Company].[Company].Members * [Company].[Parent Company].[Parent Company].Members, [Company].[Company])) 
    

    Exclude([Company].[Company].[Company].Members, Exists([Company].[Company].[Company].Members, [Company].[Parent Company].[Parent Company].Members))