3

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

4

2 回答 2

5
DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)
于 2008-09-29T08:47:04.900 回答
2

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

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

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

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

于 2008-09-29T08:43:25.080 回答