在我使用的OLAP数据库中,有一个“位置”层次结构,包括公司,区域,区域,站点,房间,等级。对于某个特定公司,我需要编写一些列出所有地区,区域和站点的MDX(但不包括站点下面的任何级别)。目前我正在通过以下MDX实现这一目标
HIERARCHIZE({
[Location].[Test Company],
Descendants([Location].[Test Company], [Location].[Region]),
Descendants([Location].[Test Company], [Location].[Area]),
Descendants([Location].[Test Company], [Location].[Site])
})
因为我对MDX的了解有限,我想知道是否有一种更简单的方法可以做到这一点,用一个命令而不是四个命令?是否有一种不那么冗长的方法来实现这一目标,还是我的榜样是实现这一目标的唯一真正方法?
答案 0 :(得分:5)
DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)
答案 1 :(得分:2)
您想要的命令是DESCENDANTS。记住'家谱'的类比,你可以看到这将列出成员的后代,尽可能地下载。
您可以指定所选成员的“距离”(在级别中),在您的情况下为3。
您可以使用第三个参数指定一些奇怪的选项,您想要SELF_AND_AFTER,请参阅http://msdn.microsoft.com/en-us/library/ms146075.aspx
编辑 - 哎呀,正如santiiiii注意到的,它应该是SELF_AND_BEFORE