mdx - 如何从获取更高级别成员的所有后代的 MDX 调用中排除某个成员

标签 mdx

在我使用的 OLAP 数据库中,有一个“位置”层次结构,包括公司 -> 区域 -> 区域 -> 站点 -> 房间。我正在使用以下 MDX 来获取公司级别特定成员的所有后代。

DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)

我现在需要从报告中排除名为“冗余”的特定区域。如何更改上述 MDX 以排除此特定区域(及其所有后代)?我知道这个区域将被称为“冗余”,但我不想硬编码任何其他区域名称,因为这些名称可能会改变。

最佳答案

EXCEPT 函数将接受一个集合,并删除您不想要的成员。在你的情况下,你需要说:

EXCEPT(
{DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)},
{DESCENDANTS([Location].[Whatever].[Redundant],[Location].[Site], SELF_AND_BEFORE)}
)

这为您提供了第一组中的所有内容,除了您在第二组中提到的内容。像这样更容易理解:
EXCEPT({the set i want}, {a set of members i dont want})

您不必担心第三个(可选)参数:http://msdn.microsoft.com/en-us/library/ms144900.aspx

关于mdx - 如何从获取更高级别成员的所有后代的 MDX 调用中排除某个成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/148875/

相关文章:

sql-server - 在 SSIS 上配置 MDX 查询

performance - MDX选择日期维度消耗大量内存

sql-server-2008-r2 - 用于排除 NULL 的不同计数

sql-server-2012 - 查找父级的百分比

ssas - MDX - 检索上个月的上一年值

ssas - 引用相同属性的不平衡层次结构

ssas - 如何在多维数据集中多次过滤测量

MDX 在层次结构中的固定级别计算 SUm

ssas - 如果当前成员有子级,则展开用户层次结构 - MDX

syntax - 为什么显式引用层次结构会消除 "different dimensionality"的错误