在我使用的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的了解有限,我想知道是否有一种更简单的方法可以做到这一点,用一个命令而不是四个命令?是否有一种不那么冗长的方法来实现这一目标,还是我的榜样是实现这一目标的唯一真正方法?

有帮助吗?

解决方案

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

其他提示

您想要的命令是DESCENDANTS。记住'家谱'的类比,你可以看到这将列出成员的后代,尽可能地下载。

您可以指定所选成员的“距离”(在级别中),在您的情况下为3。

您可以使用第三个参数指定一些奇怪的选项,您需要SELF_AND_AFTER,请参阅 http://msdn.microsoft.com/en-us/library/ms146075.aspx

编辑 - 哎呀,正如santiiiii注意到的,它应该是SELF_AND_BEFORE

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top