如何根据 mdx 中的另一个维度层次结构过滤维度层次结构

How to filter a dimension hierarchy based on another dimension hierarchy in mdx

我有一个发件人和收件人维度,它们是员工身体 table 中的角色扮演维度。 我的事实 table 有发件人、收件人、消息列。 我想从一名员工那里获得消息,发送给公司中的每个人,除了那些向他的经理报告的人。 我试过这样的东西

WITH 
  SET [Others] AS 
    Except
    (
      Ascendants([Recipient].[Manager])
     ,[Sender].[Manager].Parent
    ) 
SELECT 
  [OTHERS] ON COLUMNS
 ,{[Measures].[Messages]} ON ROWS
FROM [cube]
WHERE 
  [Sender].[Manager].&[xyz];

基本思想是..获取给定发件人的收件人的所有上级并过滤其上级列表由发件人 parent.

组成的那些

这行不通,因为我只能在两个不同的维度层次结构之间进行操作。

尝试通过关键字 EXSITING 使 Set 更多上下文感知,然后使用过滤器比较 member_caption

WITH 
  MEMBER [Measures].[SenderName] AS 
    [Sender].CurrentMember.Member_Caption 
  SET [ExistingRecip] AS 
    (EXISTING 
      [Recipient].[Manager].MEMBERS) 
  SET [Others] AS 
    Filter
    (
      [ExistingRecip]
     ,
        [ExistingRecip].Item(
        [ExistingRecip].CurrentOrdinal - 1).Member_Caption
      <> 
        [Measures].[SenderName]
    ) 
SELECT 
  [OTHERS] ON COLUMNS
 ,{[Measures].[Messages]} ON ROWS
FROM [cube]
WHERE 
  [Sender].[Manager].&[xyz];