行中的MDX度量和列中的CurrentMember.UniqueName

时间:2017-10-11 14:42:48

标签: mdx axis

需要帮助在列上轮换成员完整路径和普通性

我有以下多维数据集:

  • 在其层次结构中具有4个级别(暗淡)的1维。 表中的例子:
       GCA =集团客户A = 0级,    EC =最终客户A = 1级
  • 具有会计年度,季度和月份级别的1个时间维度
  • 2项措施(收入和成本)
  • 2计算的衡量标准(毛利率和毛利率%)

我在列上使用LastPeriods语句来显示列

中的最后X个季度

我使用ToggleDrillState语句在dim上钻取并使用4个度量交叉连接。

为了能够在前端设置表格样式,我需要暗淡的MemberFullPath和常规。

这给了我以下结果:

DimensionWith4Lvl   Measures        2017Q1             2017Q2            
GCA                 Revenue         100                110               
GCA                 Cost            60                 70                
GCA                 GM              40                 40                
GCA                 GM%             40%                36%               
GCA                 MemberOrdinal   0                  0                 
GCA                 MemberFullPath  [Dim].[GCA]        [Dim].[GCA]       
EndCustA            Revenue         100                110               
EndCustA            Cost            60                 70                
EndCustA            GM              40                 40                
EndCustA            GM%             40%                36%               
EndCustA            MemberOrdinal   1                  1                 
EndCustA            MemberFullPath  [Dim].[GCA].[ECA]  [Dim].[GCA].[ECA]

然而,我需要得到以下输出:

DimensionWith4Lvl  Measures   2017Q1   2017Q2  MemberFullPath     MemberOrdinal
GCA                Revenue    100      110     [Dim].[GCA]        0
GCA                Cost       60       70      [Dim].[GCA]        0
GCA                GM         40       40      [Dim].[GCA]        0
GCA                GM%        40%      36%     [Dim].[GCA]        0
EndCustA           Revenue    100      110     [Dim].[GCA].[ECA]  1
EndCustA           Cost       60       70      [Dim].[GCA].[ECA]  1
EndCustA           GM         40       40      [Dim].[GCA].[ECA]  1
EndCustA           GM%        40%      36%     [Dim].[GCA].[ECA]  1

这是我的查询。

with member [Measures].[Member Full Path] as '[Revenuedim].CurrentMember.UniqueName'
  member [Measures].[Member Ordinal] as '[Revenuedim].CurrentMember.Ordinal'
  member [Measures].[GM] as '([Measures].[Revenue_USD] - [Measures].[Cost_USD])'
  member [Measures].[GM%] as 'IIF(  [Measures].[Revenue_USD] > 2 , (([Measures].[GM] / [Measures].[Revenue_USD]) * 100), NULL)'
  member [Measures].[Revenue] as '[Measures].[Revenue_USD]'
  member [Measures].[Cost] as '[Measures].[Cost_USD]'

select  LastPeriods(4, [Date.YQM].LastChild.LastChild) ON 0,

  Crossjoin(
  order(
     Filter(    
  ToggleDrillState(    
          ToggleDrillState(
                {[Revenuedim].[All GCs]}, {[Revenuedim].[All GCs] }) 
        , {} )
   ,  [Measures].[Revenue] <> 0 OR [Measures].[Cost] <> 0)     
  ,[Measures].[Revenue], DESC)
   , {[Measures].[Revenue], 
  [Measures].[Cost], 
  [Measures].[GM],
  [Measures].[GM%],
  [Measures].[Member Full Path],
  [Measures].[Member Ordinal] }) ON 1

from [GM_CUST]

0 个答案:

没有答案