我尝试使用 MDX 查询检索更高级别(不是叶级别)的数据集。但结果不正确。例如,基于 Microsoft Adventure Works DW 2008R2 数据库。我想从这两个维度获取数据:
[Customer].[Education].[All Customers]
[Geography].[Country].[All Geographies]
使用 Internet 销售额度量。我使用的 MDX 查询是:
select {[Measures].[Internet Sales Amount]} on axis(0), ({[Customer].[Education].[All Customers]}) on axis(1) ,({[Geography].[Country].[All Geographies]}) on axis(2) from [Adventure Works]
结果是 29358677。
但是当我对两个维度的子节点求和时,结果如下:
结果是 176152062。我的 MDX 查询有什么问题?
最佳答案
我得到的数字与您不同:您的查询返回三维结果,而大多数客户端工具最多只能处理二维。由于列上只有一个成员(Internet Sales Amount
度量),我将其移至 slider 轴,将行轴移至列,将页面轴移至行,从而能够运行修改后的查询
select ({[Customer].[Education].[All Customers]}) on axis(0) ,
({[Geography].[Country].[All Geographies]}) on axis(1)
from [Adventure Works]
where [Measures].[Internet Sales Amount]
在 SSMS 中,结果为 29,358,677.22 美元。这正是第二个表中每一列的总和。这些列中的每一列都有相同的结果。这是意料之中的,因为 Geography
维度与 Internet Sales
度量值组无关。因此,针对该维度的每个成员重复相同的 Internet Sales Amount
值。如果您想在 AdventureWorks 中对 Internet Sales
使用地理分割,则必须使用 Customer
维度的 Location 文件夹中的层次结构。
关于database - 如何使用 MDX 查询检索内部节点的数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18373352/