Ssas 基于另一个集合过滤MDX集合';姓名

Ssas 基于另一个集合过滤MDX集合';姓名,ssas,mdx,Ssas,Mdx,我对MDX还是新手,所以我不确定是否有一种简单的方法,或者有一种不那么简单的方法来完成我的请求,但是这里有一个模糊的描述,说明我在MDX查询中尝试做什么。我有两套,都不是直接相关的在同一层次或表亲,虽然可能有一个“家庭”电话,我不知道这将做什么,我想做的 [Company].[Parent Company].[Parent Company].[Parent Company]检索作为第二个集合中公司的父公司的所有公司成员的集合 [Company].[Company].[Company]检索一组公司

我对MDX还是新手,所以我不确定是否有一种简单的方法,或者有一种不那么简单的方法来完成我的请求,但是这里有一个模糊的描述,说明我在MDX查询中尝试做什么。我有两套,都不是直接相关的在同一层次或表亲,虽然可能有一个“家庭”电话,我不知道这将做什么,我想做的

[Company].[Parent Company].[Parent Company].[Parent Company]
检索作为第二个集合中公司的父公司的所有公司成员的集合

[Company].[Company].[Company]
检索一组公司本身的所有成员,包括父公司本身

我正在尝试筛选出
[C].[C].[C]
设置为的成员中的
[Parent Company]
的任何实例,以用于我的MDX查询。我用Filter()尝试了一些奇怪的东西,但总是弄乱集合/元组或获取错误类型的数据。
这些场景没有祖父母/多代人的把戏,只有两个层面需要担心(公司和他们的潜在父母,可能没有)。如果多维数据集的格式更好,如果它们在层次结构中就更好了,但这里不是这样

示例输出:

  • [Company].[ParentCompany].[ParentCompany]
    ={A,C,E}的成员
  • [Company].[Company].[Company]
    ={A,B,C,D,E,F,G}的成员
然后我想得到一个集合,它将返回以下内容:{B,D,F,G},就是这样


任何帮助都将不胜感激

无需使用成员名称即可执行此操作:

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


您可以在不使用成员名称的情况下执行此操作:

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


你能列出一些显示所需输出的样本数据和你希望排除的内容吗?刚刚编辑了问题,以包括理论集和所需输出。谢谢这将是一个相当具有挑战性的问题,大多数普通的MDX函数都不针对字符串标签,而是针对唯一的名称,在这种情况下,它们将有所不同,因为它们来自不同的层次结构。您是否能够在维度中创建实际的父/子层次结构?如果是这样的话,就很容易过滤掉父母。我最近刚刚建立了层次结构,这样我就不必这么做了。毕竟,这似乎比在复杂的过滤查询中碰头更容易,效率也更高。然而,出于纯粹的好奇,我想知道如果我不能访问多维数据集来更改层次结构,那么这样的事情怎么可能发生。我想可能会有一些使用成员名而不是唯一名的过滤技巧,但我从来没有做到这一点。你能列出一些示例数据来显示所需的输出以及你希望排除的内容吗?只是编辑了问题,以包括理论集和所需的输出。谢谢这将是一个相当具有挑战性的问题,大多数普通的MDX函数都不针对字符串标签,而是针对唯一的名称,在这种情况下,它们将有所不同,因为它们来自不同的层次结构。您是否能够在维度中创建实际的父/子层次结构?如果是这样的话,就很容易过滤掉父母。我最近刚刚建立了层次结构,这样我就不必这么做了。毕竟,这似乎比在复杂的过滤查询中碰头更容易,效率也更高。然而,出于纯粹的好奇,我想知道如果我不能访问多维数据集来更改层次结构,那么这样的事情怎么可能发生。我想会有一些过滤技巧,使用成员名而不是唯一名,但我从来没有做到这一点。