Mdx 父子维度-混乱的级别

Mdx 父子维度-混乱的级别,mdx,olap,ssas-2008,Mdx,Olap,Ssas 2008,我正在运行AnalysisServices2008R2,遇到了一些我真的不理解的行为,我似乎无法弄清到底。我有一个称为Segment的维度,它是一个简单的父子维度,其中四个顶级成员中只有一个有子维度。这一位成员有两个孩子。只有叶节点具有任何值 在维度中,我使用AttributeAllMemberName允许使用“所有段”来引用顶级成员。多维数据集中使用了三个维度:段、国家和年份 当我跑步时: SELECT {{Descendants([Country].[Global],, SELF_BEFOR

我正在运行AnalysisServices2008R2,遇到了一些我真的不理解的行为,我似乎无法弄清到底。我有一个称为Segment的维度,它是一个简单的父子维度,其中四个顶级成员中只有一个有子维度。这一位成员有两个孩子。只有叶节点具有任何值

在维度中,我使用AttributeAllMemberName允许使用“所有段”来引用顶级成员。多维数据集中使用了三个维度:段、国家和年份

当我跑步时:

SELECT {{Descendants([Country].[Global],, SELF_BEFORE_AFTER)}} ON ROWS, 
  {[Segment].[All Segments].children}*{[Measures].[Volume tonnes]} ON COLUMNS 
FROM [Market] 
WHERE [Year].[2012]
我在列上看到所有成员,但有子节点的节点有一个空列。我的理解是,“儿童”应该只向我展示一个层次,而不是两个层次。如果,另一方面,我跑了

SELECT {{Descendants([Country].[Global],, SELF_BEFORE_AFTER)}} ON ROWS, 
  {[Segment].[(all)].[All Segments].children}*{[Measures].[Volume tonnes]} ON COLUMNS 
FROM [Market] 
WHERE [Year].[2012]
我完全明白我所期望的;具有正确聚合值的四个顶级子级,用于具有自己子级的一个子级。没有显示孙子孙女。无论哪种情况,都会显示正确的行数

这两个查询之间的唯一区别是在第二个查询中明确列出了“[(all)]”级别。假设“all”成员被定义为“(all)”级别集的唯一成员,这两个查询应该返回相同的值,但它们不返回。我必须在维度配置中缺少一些东西,但是什么呢?有人能给我指出解决这个问题的正确方向吗?我需要查询正常工作,而不必使用“[(全部)]”

为了防止这篇文章变得过于臃肿,我在自己的网站上发布了一些投标截图,以显示维度的配置。有三个属性和维度本身需要配置,但我只能发布两个链接,因此从本页链接了它们:

层次结构和顺序通过刚性属性关系与关键点相关


我觉得这一切都没问题,但问题一定出在这里的某个地方。

你能解释一下什么是[全局]以及它与分段维度的关系吗?此外,您的where条款中的[2012]是什么?通常,您希望显式指定在axis或切片器中使用的维度成员,因为多维数据集可以对所需的成员进行假设。此外,除了层次结构,您还没有为后代函数指定任何参数。如果未指定级别或距离,则通过调用级别函数(.level)来确定该函数使用的级别的默认值对于指定的成员,或通过为指定集的每个成员调用级别函数。如果未指定级别表达式、距离或标志,则该函数的执行就像使用了以下语法一样:子体(成员表达式、成员表达式.Level、SELF\u BEFORE\u AFTER)尽管没有后代函数的参数,但行的结果还是很好。我看到的问题是,在查询中省略“(all)”级别会导致显示所有成员,而不仅仅是顶层的子级。此外,对于一个有孩子的顶级成员来说,这种情况不会发生。当我使用“[(全部)]”指定级别时,一切正常,但“所有段”应该暗示“[(全部)]”级别,不是吗?我怀疑问题出在我的多维数据集/维度配置中,但我的其他父-子维度工作正常。帖子已更新以解决mmarie的评论。谢谢。你能发布一张图片或复制你的段维度属性/设置吗?我认为你对维度定义的怀疑是对的。