【发布时间】:2014-12-08 03:38:08
【问题描述】:
在MDX 中,我们可以CROSS JOIN 两个成员,一个度量和一个成员,但不能两个度量。为什么会这样?这意味着什么?
SELECT
[Measures].[xyz] * [DimTable1].[SomeHierarchy].[Level] on 0,
[DimTable2].[SomeOtherHierarchy].&[Value] on 1
FROM [MyCube]
// WORKS
SELECT
[Measures].[xyz] on 0,
[DimTable2].[SomeOtherHierarchy].&[Value] * [DimTable1].[SomeHierarchy].[Level] on 1
FROM [MyCube]
// OF COURSE IT WORKS
SELECT
[Measures].[xyz] * [Measures].[ABC] on 0,
[DimTable1].[SomeHierarchy].&[Value] on 1
FROM [MyCube]
// DOES NOT WORK!!
【问题讨论】:
-
为什么要交叉连接两个度量?你期望的最终结果是什么?对于维度,您可以获得维度属性的可能组合,但为什么要对度量执行此操作?
-
我试图了解当两个度量交叉连接时在后台发生了什么。我非常了解交叉连接意味着各种可能的条件。但我的问题是,当措施交叉连接时会发生什么,为什么会出错。这不是我想做的事,而是我想了解的事。
-
@Sourav_Agasti 交叉连接只是对一个集合的所有成员与另一个集合的所有成员进行笛卡尔积......假设你最终得到了大量的 2 个成员元组。这些元组中的大多数都在多维数据集的空白空间中,即它们没有结果。交叉连接的 autexists 属性意味着这些空元组被丢弃。
-
@Sourav_Agasti 您的第三个查询在它返回的表的主体中没有值?!它在 A 列下有数字,然后在 B 列下有数字,然后 c 列是 [DimTable1].[SomeHierarchy].&[Value] 但是你想在 C 列中显示什么值?!
标签: ssas mdx cross-join ssas-2012 measures