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;

  • 相关阅读:
    WP7开发学习(3):在WP7中使用WCF+log4net 打印并输出日志文件(附源码)
    MongoDB开发学习(2)索引的基本操作
    C#批量添加水印
    获取某一时间戳的月份的开始时间戳和结束时间戳
    php判断一个字符串是否为日期格式
    正则表达式匹配括号引号内容
    PHP获取今日汽油价格接口
    ThinkPHP5 在Nginx环境下开启伪静态
    PHP格式化打印:JSON字符串|对象|数组
    php header ContentType出错
  • 原文地址:https://www.cnblogs.com/dekevin/p/2654196.html
Copyright © 2011-2022 走看看