关于BI中OLAP的MDX语句及各类分析实现 同比增长率

来源:互联网 发布:帝国cms漏洞 编辑:程序博客网 时间:2024/04/28 22:03
/*
  销售同比增长率:年度同比增长率,季度同比增长率,月同比增长率
效果如图:
*/




CREATE MEMBER CURRENTCUBE.[Times].[同比增长率].[年度同比增长率]
AS "",
FORMAT_STRING = "Percent",
VISIBLE = 1;              
  
// 年度同比增长率  
  (
[Times].[同比增长率].[年度同比增长率],
    [Times].[Y].[Y].Members ( 1 ) : Null,
[Times].[dateKey].Members
  ) =      
  (
    ( [Times].[同比增长率].DefaultMember ) -
    ( [Times].[同比增长率].DefaultMember,
      ParallelPeriod(
                      [Times].[按时间统计].[年],
                      1,
                      [Times].[按时间统计].CurrentMember
      )
    )
  )
  /
  ( [Times].[同比增长率].DefaultMember,
    ParallelPeriod(
                    [Times].[按时间统计].[年],
                    1,
                    [Times].[按时间统计].CurrentMember
    )
  );              
  
  (
    [Times].[同比增长率].[年度同比增长率],
    [Times].[Y].[Y].Members ( 0 ),
[Times].[dateKey].Members
  ) = Null;               
  
  Format_String(
                 (
       [Times].[同比增长率].[年度同比增长率],
       [Times].[dateKey].Members
     )
  ) = "Percent";              
  
   

//季度同比增长率

CREATE MEMBER CURRENTCUBE.[Times].[同比增长率].[季度同比增长率]
AS "",
FORMAT_STRING = "Percent",
VISIBLE = 1;         
  

  (
[Times].[同比增长率].[季度同比增长率],
    [Times].[Q].[Q].Members ( 1 ) : Null,
[Times].[dateKey].Members
  ) =      
  (
    ( [Times].[同比增长率].DefaultMember ) -
    ( [Times].[同比增长率].DefaultMember,
      ParallelPeriod(
                      [Times].[按时间统计].[季],
                      1,
                      [Times].[按时间统计].CurrentMember
      )
    )
  )
  /
  ( [Times].[同比增长率].DefaultMember,
    ParallelPeriod(
                    [Times].[按时间统计].[季],
                    1,
                    [Times].[按时间统计].CurrentMember
    )
  );         
  
  (
    [Times].[同比增长率].[季度同比增长率],
    [Times].[Q].[Q].Members ( 0 ),
[Times].[dateKey].Members
  ) = Null;           
  
  Format_String(
                 (
       [Times].[同比增长率].[季度同比增长率],
       [Times].[dateKey].Members
     )
  ) = "Percent";         
  

// 月同比增长率  

CREATE MEMBER CURRENTCUBE.[Times].[同比增长率].[月同比增长率]
AS "",
FORMAT_STRING = "Percent",
VISIBLE = 1;         
  
  (
[Times].[同比增长率].[月同比增长率],
    [Times].[M].[M].Members ( 1 ) : Null,
[Times].[dateKey].Members
  ) =      
  (
    ( [Times].[同比增长率].DefaultMember ) -
    ( [Times].[同比增长率].DefaultMember,
      ParallelPeriod(
                      [Times].[按时间统计].[月],
                      1,
                      [Times].[按时间统计].CurrentMember
      )
    )
  )
  /
  ( [Times].[同比增长率].DefaultMember,
    ParallelPeriod(
                    [Times].[按时间统计].[月],
                    1,
                    [Times].[按时间统计].CurrentMember
    )
  );         
  
  (
    [Times].[同比增长率].[月同比增长率],
    [Times].[M].[M].Members ( 0 ),
[Times].[dateKey].Members
  ) = Null;         
  
  Format_String(
                 (
       [Times].[同比增长率].[月同比增长率],
       [Times].[dateKey].Members
     )
  ) = "Percent";
 
原创粉丝点击