2013-02-12 87 views
0

我很努力与这个MDX行上应该返回日期和价值国家排序的交叉。显然,在交叉连接期间Order函数中的[Date] .CurrentMember仍然返回默认成员,而不是交叉连接上下文中的当前成员。也许我的理解如何和什么时候在crossjoin期间设置评估是不正确的?MDX:Crossjoin和设置评估

WITH 
    SET [DATE_main] AS 
    { 
     [Date].[Fiscal Year].&[2002], 
     [Date].[Fiscal Year].&[2003] 
    } 
    SET [CUSTOMER_ordered] AS 
    { 
     Order 
     (
     [Customer].[Customer Geography].[Country].Members, 
     (
      [Customer].[Customer Geography].CurrentMember, 
      [Date].[Fiscal Year].CurrentMember, 
      [Measures].[Internet Sales Amount] 
     ), 
     BDESC 
    ) 
    } 
SELECT 
    {[Measures].[Internet Sales Amount]} ON COLUMNS, 
    CrossJoin 
    (
    [DATE_main], 
    [CUSTOMER_ordered] 
) ON ROWS 
FROM [Adventure Works]; 

感谢您的任何建议, Endokr

回答

0

有预期的结果,你必须把交叉连接的顺序内。

+0

我忘了提,我需要[ (2002年,澳大利亚),(2002年,加拿大),(2003年,澳大利亚),(2003年,加拿大)等等,基本上需要根据每个[DATE_main ]成员。 – Endokr 2013-02-13 08:50:36

0

这解决我的问题,但我还是想知道为什么[日期]如我所料在CROSSJOIN [财政年度] .CurrentMember不起作用:

WITH 
    SET [DATE_main] AS 
    { 
     [Date].[Fiscal Year].&[2002], 
     [Date].[Fiscal Year].&[2003] 
    } 
    SET [CUSTOMER_ordered] AS 
    { 
     Order 
     (
     [Customer].[Customer Geography].[Country].MEMBERS, 
     (
      [Customer].[Customer Geography].CurrentMember, 
      [Date].[Fiscal Year].CurrentMember, 
      [Measures].[Internet Sales Amount] 
     ), 
     BDESC 
    ) 
    } 
SELECT 
    {[Measures].[Internet Sales Amount]} ON COLUMNS, 
    Generate 
    (
    [DATE_main], 
    Order 
    (
     CrossJoin 
     (
     [Date].[Fiscal Year].CurrentMember, 
     [Customer].[Customer Geography].[Country].MEMBERS 
    ), 
     (
     [Measures].[Internet Sales Amount] 
    ), 
     BDESC 
    ) 
) ON ROWS 
FROM [Adventure Works];