2009-09-17 28 views
2

这两个陈述是否相同?MDX中的元组是否隐式交叉?

元组:

SELECT {[Measures].[Volume]} ON COLUMNS, 
    ([Product].[Product Id].[Product Id].AllMembers 
    ,[Time].[Time].[Year].AllMembers) ON ROWS 
    FROM [My Cube] 

对战明确CROSSJOIN:

SELECT {[Measures].[Volume]} ON COLUMNS, 
    [Product].[Product Id].[Product Id].AllMembers 
     * [Time].[Time].[Year].AllMembers ON ROWS 
     FROM [My Cube] 

他们似乎返回相同的结果,但它会从阅读似乎我已经做到了他们应该不会(至少不总是)。

回答

2

你在第一个查询中有什么不是一个元组。元组由一个或多个成员的集合组成

例如。 (的member1,member2,...

凡为你所拥有的是(设置1,设置2 ...)。我认为这是一个子多维数据集,因为这是为范围语句定义子多维数据集时使用的。而一个子多维数据集本质上是一个隐含的crossjoin,所以你的两个查询应该返回相同的结果。