Ssas MDX-为什么度量之间的交叉连接不起作用?

Ssas MDX-为什么度量之间的交叉连接不起作用?,ssas,mdx,cross-join,ssas-2012,measures,Ssas,Mdx,Cross Join,Ssas 2012,Measures,在MDX中,我们可以交叉连接两个成员,一个度量值和一个成员,但不是两个度量值。为什么会这样?这意味着什么 SELECT [Measures].[xyz] * [DimTable1].[SomeHierarchy].[Level] on 0, [DimTable2].[SomeOtherHierarchy].&[Value] on 1 FROM [MyCube] // WORKS SELECT [Measures].[xyz] on 0, [DimTabl

MDX
中,我们可以
交叉连接两个成员,一个度量值和一个成员,但不是两个度量值。为什么会这样?这意味着什么

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!!
编辑
您的第三个查询无效,如下所示:

黄色区域是空的,所以不高兴是可以理解的

编辑
下面是一个使用Excel pivot表的类比,该表使用OLAP技术

如果将度量值a和B的交叉连接放在行上,则得到如下结果:

然后,如果我们在列上添加一个非常小的级别(有4个成员),我们将得到以下结果:

那么,这张表的主体部分将包含哪些内容?
如果您创建了自定义度量值(没有用于测试此语句的服务器),则可以在
MDX
中进行
计数。Excel将默认为
计数
,但结果毫无意义

我想你忘了:

挑选 0上的[dd].[hh].[mm1]*[dd].[hh].[mm2], [MyCube]中1上的[DimTable1].[SomeHierarchy].&[Value]


也不管用。[Measures]与我的示例中的[dd]没有什么不同。在MDX中,不能定义具有相同层次结构的多个成员的元组。看看这篇文章,解释主要概念。

为什么要交叉连接两个度量?你期望的最终结果是什么?对于维度,您可以获得维度属性的可能组合,但为什么要使用度量值进行此操作?我试图了解当两个度量值交叉连接时,背景中会发生什么。我非常理解交叉连接意味着各种可能的条件。但我的问题是,当度量交叉连接时会发生什么,为什么会出错。这不是我想做的事情,而是我想理解的事情。@Sourav_Agasti交叉连接只是将一个集合中的所有成员与另一个集合中的所有成员进行笛卡尔乘积……假设你最终得到一个由两个成员元组组成的庞大集合。这些元组中的大多数都在多维数据集的空白空间中,即它们没有结果。交叉联接的autexists属性意味着这些空元组被丢弃。@Sourav_Agasti您的第三个查询在返回的表体中没有值?!在A列中有数字,在B列中有数字,在c列中有[DimTable1].[SomeHierarchy].&[Value],但您希望在c列中显示哪些值?!谢谢,我理解元组的概念。当同一层次结构的两个成员交叉连接时(交叉连接函数中多次使用xyz层次结构)显示的错误消息与将它们放入同一元组时显示的错误消息(元组中多次出现“xyz”层次结构)大不相同。但令人惊讶的是,当我交叉加入两个度量值时,错误信息却大不相同。Axis0函数要求参数使用元组集表达式。使用了字符串或数字表达式。抱歉,不知道SSAS的详细信息;可能是一个实现细节。我觉得你的类比不正确。当我们没有显式完成任何元组(包含所有层次结构)时,它会从这些层次结构中选择默认成员。如果我们只是避免交叉连接,它将从所有层次结构中获取(通常是全部),这将返回度量值的最大可能值。在这种情况下,我本以为会发生类似的事情,但它错了。