MDX查询返回什么?

时间:2015-01-29 15:27:56

标签: ssas mdx

我刚刚开始学习SSAS而无法理解基本思想。

当查询修复的维度少于多维数据集时会发生什么?

所有示例通常都会显示尺寸交叉给出点或轴的查询;在前一种情况下,我们有价值,而在后一种情况下,我们得到一些汇总价值。

然而,我无法理解当固定尺寸产生尺寸较小的立方体时会发生什么。这种查询的结果是什么?

2 个答案:

答案 0 :(得分:3)

我会尝试更简单地解释它,然后是之前的答案。

SELECT声明中,您定义了一个'空格'更像是结果的数学空间。使用聚合函数在整个空间上投影

如果要投影多维数据集的一部分,请使用WHERE子句。

这是SQL之间的关键差异,这在我开始时很难掌握:)

答案 1 :(得分:1)

MDX查询实际上返回一个多维数据集 - 以及一个子多维数据集。

我认为这足以显示它的实际效果:

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,它返回一个多维数据集。然后外部脚本进一步查询该多维数据集。

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