根据另一个集的名称过滤MDX集

时间:2012-04-26 03:41:02

标签: ssas mdx

我还是MDX的新手,所以我不确定是否有一种简单的方法,或者是一种不那么容易的方式来做我想问的问题,但是这里有一个模糊的描述我正在尝试为我的MDX查询做。我有两套,两个都没有直接相关的相同的层次结构或表兄弟,虽然可能有一个“家庭”电话,我不知道这将做我想做的事情。

[Company].[Parent Company].[Parent Company]检索第二组中公司父母的所有公司成员的集合。

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

我正在尝试过滤掉[C].[C].[C]设置为 NOT ,在我的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}就是这样。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分: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))