我刚刚开始学习SSAS而无法理解基本思想。
当查询修复的维度少于多维数据集时会发生什么?
所有示例通常都会显示尺寸交叉给出点或轴的查询;在前一种情况下,我们有价值,而在后一种情况下,我们得到一些汇总价值。
然而,我无法理解当固定尺寸产生尺寸较小的立方体时会发生什么。这种查询的结果是什么?
答案 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
显示,脚本也会返回所有维度,然后只通过脚本中指定的内容使某些方面可见。