database - 如何使用 MDX 查询检索内部节点的数据集?

标签 database dataset mdx olap

我尝试使用 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。

但是当我对两个维度的子节点求和时,结果如下: enter image description here

结果是 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/

相关文章:

sql - 创建时间数据中缺失的分钟记录以完成一天(每天 1440 条记录)

MySQL 和 FK 约束

machine-learning - 参加 Microsoft Research 句子完成挑战

sql-server - 读取 SQL 分析服务元数据

sql - 有什么方法可以使用 LINQ 进行 MDX 查询吗?

java - 从数据库获取文件名并使用它来填充 ImageView

c# - 在 C# 中合并两个 XML 文件,其中一个不一致

r - 用于删除列的R代码说明

excel - Excel 数据透视表 MDX 速度慢?

regex - 创建表期间解析 Hive 中的时间戳