1

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

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

当我运行时:

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)”级别集的唯一成员,这两个查询应该返回相同的值,但它们不会。我一定在维度配置中遗漏了一些东西,但是什么?有人可以指出我正确的方向来解决这个问题吗?我需要查询正常工作而不必使用“[(all)]”。

为了防止这篇文章变得过于臃肿,我在我自己的网站上发布了一些 BIDS 的屏幕截图,以显示维度的配置。有三个属性和维度本身需要配置,但我只能发布两个链接,所以从这个页面将它们全部链接:http: //coolwire.co.uk/share/BIDS.html

Hierarchy 和 Ordering 通过严格的属性关系与 Key 相关联。

对我来说一切都很好,但问题一定出在某个地方。

4

0 回答 0