【问题标题】:no total value using calculation in ssas在 ssas 中使用计算没有总值
【发布时间】:2013-07-04 12:36:01
【问题描述】:

我使用计算成员从特殊属性的度量中减去特殊值。

在伪代码中它应该像这样工作:

CASE Attribute  
WHEN (Attribute = A) THEN Measure_of_A - 14
WHEN (Attribute = B) THEN Measure_of_B - 2
ELSE 5

我在 MDX 中的计算成员中尝试过这个

CASE [D Software].[Dim Software].CURRENTMEMBER

 WHEN [D Software].[Dim Software].[Feature Desc].&[A]&[AAA]
  THEN ([D Software].[Dim Software].[Feature Desc].&[A]&[AAA],[Measures].[Status6]) - 14

 WHEN [D Software].[Dim Software].[Feature Desc].&[B]&[BBB] 
  THEN ( [D Software].[Dim Software].[Feature Desc].&[BBB]&[B],[Measures].[Status6]) - 2   

ELSE '5'
END

IT 工作正常,但总的合计值总是错误的。 我得到的结果如下所示:

Attribute Value

AA -14

Total_AA 5

BB -2

Total_BB 5

Grand_Total 5

有人给我建议吗?我的失败在哪里?为什么没有正确聚合值?

【问题讨论】:

    标签: ssas mdx cube


    【解决方案1】:

    在多维数据集完成所有聚合之后执行计算成员的计算。 您需要在总计的计算中明确定义聚合,例如

    CASE [D Software].[Dim Software].CURRENTMEMBER
    
     WHEN [D Software].[Dim Software].[Feature Desc].&[A]&[AAA]
      THEN ([D Software].[Dim Software].[Feature Desc].&[A]&[AAA],[Measures].[Status6]) - 14
    
     WHEN [D Software].[Dim Software].[Feature Desc].&[B]&[BBB] 
      THEN ( [D Software].[Dim Software].[Feature Desc].&[BBB]&[B],[Measures].[Status6]) - 2   
    
      WHEN [D Software].[Dim Software].[Feature Desc].&[A] 
      THEN sum( [D Software].[Dim Software].[Feature Desc].&[A].children,[Measures].[Status6])
    
      WHEN [D Software].[Dim Software].[Feature Desc].&[B] 
      THEN sum( [D Software].[Dim Software].[Feature Desc].&[B].children,[Measures].[Status6])
    
      WHEN [D Software].[Dim Software].[Feature Desc].[All] 
      THEN sum( [D Software].[Dim Software].[Feature Desc].[All].children,[Measures].[Status6])
    
    ELSE '5'
    

    结束

    以这种方式在 MDX 计算成员中编写聚合逻辑是不可维护的。您应该使用 scope 来处理这种逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      相关资源
      最近更新 更多