【问题标题】:How to retrieve the internal node's dataset using MDX query?如何使用 MDX 查询检索内部节点的数据集?
【发布时间】:2013-08-22 06:40:33
【问题描述】:

我尝试使用 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 查询有什么问题?

【问题讨论】:

    标签: database dataset mdx olap


    【解决方案1】:

    我得到的数字与您不同:您的查询返回一个三维结果,大多数客户端工具最多只能处理二维。由于列上只有一个成员(Internet Sales Amount 度量),我将其移至滑块轴,将行轴移至列,将页面轴移至行,从而能够运行修改后的查询

    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 文件夹中找到的层次结构。

    【讨论】:

    • 非常感谢!它对我有很大帮助!顺便说一句,“Geography 维度与 Internet 销售度量值组无关”是什么意思?
    • @injoy 用关系数据库术语表示:“Internet Sales”度量组所基于的事实表中没有外键到 Geography 的维度表。而且也没有通过多对多关系的间接关系。如果您在 BIDS 中打开多维数据集定义,然后查看第二个选项卡“维度使用情况”,则可以查看所有关系。
    猜你喜欢
    • 2022-10-15
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多