亲子维度 - 混淆的水平

时间:2013-12-09 16:11:36

标签: mdx olap ssas-2008

我正在运行Analysis Services 2008 R2并且遇到了一些我真的不理解的行为,而且我似乎无法深入了解它。我有一个名为Segment的维度,它是一个简单的父子维度,其中只有四个顶级成员中的一个拥有任何子级。这一个成员,有两个孩子。只有叶节点有任何值。

在维度中我使用了AttributeAllMemberName来允许“All Segments”用于引用顶级成员。多维数据集中使用了三个维度:细分,国家和年份。

当我跑步时:

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)]”。

为了阻止这个帖子变得过于臃肿,我已经在我自己的网站上发布了一些BIDS屏幕,以显示维度的配置。有三个属性,维度本身需要配置,但我只能发布两个链接,因此已将这些链接全部链接到此页面:http://coolwire.co.uk/share/BIDS.html

层次结构和排序通过严格的属性关系与Key相关。

这一切对我来说都没问题,但问题必定在这里。

0 个答案:

没有答案