MDX 查询什么 return?

What does an MDX query return?

刚开始学SSAS,基本思路还不明白

当查询修复的维度少于立方体的维度时会发生什么?

所有示例通常都会出现维度交集给出点或轴的查询;在前一种情况下,我们得到了值,而在后一种情况下,我们得到了一些聚合值。

但我无法理解当固定维度产生维度较少的立方体时会发生什么。这样查询的结果是什么?

一个 MDX 查询实际上 returns 一个多维数据集 - 一个子多维数据集。

我想这足以展示它的实际效果:

SELECT 
  NON EMPTY 
    {
      [Measures].[Internet Order Count]
    } ON COLUMNS
 ,NON EMPTY 
    {
        [Sales Territory].[Sales Territory].[Country].MEMBERS
      * 
        [Date].[Calendar].[Month].ALLMEMBERS
    } ON ROWS
FROM 
(  //>>>>>>following is a sub-select>>>>>
  SELECT 
    [Date].[Calendar].[Month].&[2008]&[1] ON COLUMNS
  FROM [Adventure Works]
);

我标记的部分是 sub-select 其中 returns 一个立方体。然后由外部脚本进一步查询该多维数据集。

如果返回一个多维数据集,那么为什么我们只看到 table 个值?返回立方体和实际可见的是两件不同的事情。每当我们 运行 一个 mdx 脚本时都会使用所有维度 - 如果我们没有在脚本中明确使用维度,那么它会在 [(All)] 级别进行评估。因此,即使通过说 ssms 只显示了一个小的 table,所有维度都由脚本返回,然后只有某些方面通过脚本中指定的内容可见。

我会尽量解释得更简单,然后是之前的答案。

SELECT 语句中,您定义了一个 'space' 更像结果的数学 space。使用聚合函数 将整个立方体 投影到那个 space 上。

如果要投影立方体的一部分,请使用 WHERE 子句。

这是 SQL 之间的关键区别,一开始我很难理解:)