zoukankan      html  css  js  c++  java
  • SSAS使用时间智能解决本年累计、同比、环比【转载】

           通常,我们需要使用MDX定义本年累计、同比、环比等一系列基于时间维度的计算指标。但是这样有一个麻烦的地方就是比如我有50个基础指标,每个指标都需要本年累计,那我就需要写50遍下面的语句:
    create member CURRENTCUBE.[MEASURES].[本年累计交易金额] as
    sum(periodsToDate([日期].[日期层次结构].[年],[个贷].[日期].[日期层次结构].currentmember),[交易金额]),
    FORMAT_STRING = "#,#.00",
    VISIBLE = 1;   

    这样下来纯工作量是不是很大?

    原谅我比较愚笨,后来才知道SSAS的时间智能可以很轻松的解决该问题:使用商业智能中的定义时间智能就可以很easy的解决该问题。它会生成一些列mdx计算脚本,其实我们还可以根据自己的需要有所增减,吼吼。
    结果如下:
    /*
      开始 [统计日期].[日期层次] 层次结构的时间智能脚本。
    */

    Create Member 
      CurrentCube.[统计日期].[日期范围计算].[本年度截止到现在] 
      As "NA"; 
      
    Scope(
           {
                [Measures].[交易金额],
                [Measures].[交易笔数],
                [Measures].[手续费],
                [Measures].[提支利差收入],
                [Measures].[持有金额],
                [Measures].[累计数量],
                [Measures].[累计金额],
                [Measures].[客户总数],
                [Measures].[交易数量]
           }
    ); 

    // 本年度截止到现在
      (
        [统计日期].[日期范围计算].[本年度截止到现在],
        [统计日期].[D YEAR].[D YEAR].Members,
            [统计日期].[日期].Members 
      ) =

      Aggregate(
                 { [统计日期].[日期范围计算].DefaultMember } *
                 PeriodsToDate(
                                [统计日期].[日期层次].[年],
                                [统计日期].[日期层次].CurrentMember
                 )
      ); 

    end scope;

  • 相关阅读:
    整理一些笔试题(要求手写代码的)
    网络笔试题
    链表-单链表的各种操作
    C语言-排序-希尔排序
    C语言-排序-选择排序
    C语言-排序-归并排序
    C语言-排序-插入排序
    [转载]iOS 10 UserNotifications 框架解析
    Objective-C枚举的几种定义方式与使用
    【转载】iOS屏幕适配设计
  • 原文地址:https://www.cnblogs.com/dekevin/p/2654196.html
Copyright © 2011-2022 走看看