MDX - 具有EXCEPT的计算成员根本不会累积?

时间:2014-11-27 14:29:10

标签: mdx aggregate except

我有一个计算成员,我想通过YTD汇总一个度量。我还希望该措施能够在所有方面进行汇总。有一个维度值,我不想成为聚合的一部分。问题是,当我尝试过滤掉聚合时,不会在其他维度上滚动。

这样可以为[EK DIM OBJ KONTO]维度中的所有值返回正确的值,并在所有维度上正常汇总:

Aggregate
(
  YTD([DATUM D].[Period].CurrentMember)
 ,[Measures].[UTFALL V]
)

当我尝试添加EXCEPT - 语句以排除[EK DIM OBJ KONTO]维度中的一个值时,我得到了错误的结果。计算成员总是返回相同的答案,它没有注意到我试图用它切片的尺寸。

Aggregate
(
    {YTD([DATUM D].[Period].CurrentMember)}
  * 
    {
      Except
      (
        [EK DIM OBJ KONTO].[KTOB2 ID].[KTOB2 ID]
       ,[EK DIM OBJ KONTO].[KTOB2 ID].&[-]
      )
    }
 ,[Measures].[UTFALL V]
)

1 个答案:

答案 0 :(得分:0)

这违反了AdvWorks多维数据集,但似乎正在运行:

WITH 
  MEMBER [Measures].SumYtd AS 
    Aggregate
    (
      {YTD()}
     ,[Measures].[Internet Sales Amount]
    ) 
  MEMBER [Measures].SumException AS 
    Aggregate
    (
        {YTD()}
      * 
        {
          Except
          (
            [Customer].[Customer Geography].[Country].MEMBERS
           ,[Customer].[Customer Geography].[Country].&[United States]
          )
        }
     ,[Measures].[Internet Sales Amount]
    ) 
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].SumException
   ,[Measures].SumYtd
  } ON 0
 ,[Date].[Calendar].[Month].&[2007]&[11].Children ON 1
FROM [Adventure Works];