在MDX中列出成员及其所有后代的最佳方法是什么?
时间:2020-03-06 14:51:57 来源:igfitidea点击:
在我使用的OLAP数据库中,存在一个"位置"层次结构,该层次结构由公司,区域,区域,站点,房间,耕种级别组成。对于特定的公司,我需要编写一些MDX,其中列出了所有地区,区域和站点(但没有Site下的任何级别)。目前,我正在通过以下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。牢记"家族树"的类比,我们会看到这将列出成员的后代,并且将其尽可能地向下列出。
我们可以指定距所选成员的"距离"(以级别为单位),在本例中为3.
我们可以使用第三个参数指定一些奇怪的选项,我们需要SELF_AND_AFTER,请参阅http://msdn.microsoft.com/zh-cn/library/ms146075.aspx
正如santiiiii所指出的,EDIT oops应该为SELF_AND_BEFORE
DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)