【问题标题】:MDX: Crossjoin and set evaluationMDX:交叉连接和集合评估
【发布时间】:2013-02-12 22:38:13
【问题描述】:

我正在努力处理这个 MDX,它在行上应该返回按值排序的日期和国家/地区的交叉连接。显然,交叉连接期间 Order 函数中的“[Date].[Fiscal Year].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,
  CrossJoin
  (
    [DATE_main],
    [CUSTOMER_ordered]
  ) ON ROWS
FROM [Adventure Works];

感谢您的任何建议, 恩多克

【问题讨论】:

    标签: set mdx cross-join


    【解决方案1】:

    要获得预期的结果,您必须将交叉连接放入订单中。

    【讨论】:

    • 我忘了提到我需要 [DATE_main] 成员按集合指定的顺序排列:(2002,澳大利亚),(2002,加拿大),(2003,澳大利亚),(2003,加拿大)等。基本上需要在每个 [DATE_main] 成员的上下文中对国家进行排序。
    【解决方案2】:

    这解决了我的问题,但我仍然想知道为什么 [Date].[Fiscal Year].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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2017-10-23
      相关资源
      最近更新 更多