zoukankan      html  css  js  c++  java
  • 有关比较分析的MDX

    所有的例子中:month参数指向月粒度、year参数指向年粒度。日期层次结构为:年、季度、月、日

    1. 去年同期:即查询月为200905的话,该指标为200805该指标
    total([金额] within set parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?mon?))
    2. 本年累计:即查询月为200905的话,该指标为200901-200905期间发生
    total([金额] within set periodsToDate([日期].[日期层次结构].[年],[日期].[日期层次结构].[月]->?mon?))

    3.  去年同期止累计:即查询月为200905的话,该指标为200801-200805期间发生
    total([金额] within set periodsToDate([日期].[日期层次结构].[年],parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?mon?)))
    同比增长  (以日期为行维)
    ([销售金额]- value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额])))/ value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额]))
    环比增长   (以日期为行维)
    ([销售金额]-value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额])))/value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额]))
    4. 有史以来累计发生:查询月为200805,则为从时间第一个节点截止200805期间发生

    1)如果提示使用的是[日期].[日期层次结构].[月].[月 - Key]
       total([金额] within set
            filter(
                 members([日期].[日期层次结构].[月]),
                 [日期].[日期层次结构].[月].[月 - Key]<=?month?
                  ))

    2)如果提示使用的是[日期].[日期层次结构].[月]
        total([金额] within set
            lastperiods(1000,[日期].[日期层次结构].[月]->?month?))
    5. 查询粒度为年,统计上半年、下半年
    上半年余额(即时点类指标):
    total([余额] within set subset(descendants([日期].[日期层次结构].[年]->?year?,[日期].[日期层次结构].[月]),5,1))
    上半年发生额(即时段类指标):
    total([金额] within set subset(descendants([日期].[日期层次结构].[年]->?year?,[日期].[日期层次结构].[月]),0,6))

    这里subset()这个函数和substring()类似,只不过subset截取的是一个set(集合)中的某些成员而已,并且注意subset()第一个是0而不是1,这个和数组是类似的.
  • 相关阅读:
    beta冲刺总结
    beta冲刺第六天
    beta冲刺第四天
    beta冲刺第五天
    beta冲刺第三天
    beta冲刺第一天
    beta冲刺第二天
    beta冲刺前的准备
    【转载】Android 装载器---使用LoaderManager的回调方法
    【转载】Android之用PopupWindow实现弹出菜单
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/2092044.html
Copyright © 2011-2022 走看看