互联网服务商业智能统计

【已解决】RS计算精确到天的【同比】和【环比】问题

这个是冰妹妹的表达式:
去年同期:即查询月为200905的话,该指标为200805该指标
total([金额] within set parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?mon?))
冰妹妹的这个函数好像不能同期到天。月份参数不是本月没问题,但是:
如果?month?=本月(如目前是2010-01月份,实际区间为2010-01-01到2010-01-18]
那么【去年同期】统计区间应该是2009-01-01到2009-01-18;而非2009-01整月数据
    【上月同期】统计区间应该是2009-12-01到2009-12-18;而非2009-12整月数据

/*********************************************************/
同理:本年、年同期;本周、上周同期等
/********************************************************/

欢迎大家讨论方法。
参与76

76同行回答

beyond21thbeyond21th技术经理beyond
收藏……………………显示全部
收藏……………………收起
零售/批发 · 2012-07-17
浏览2199
beyond21thbeyond21th技术经理beyond
收藏…………………………………………显示全部
收藏…………………………………………收起
零售/批发 · 2011-10-23
浏览546
liren2001liren2001工程师home
小贝抛砖引玉,冰妹妹接得好,学习了显示全部
小贝抛砖引玉,冰妹妹接得好,学习了收起
零售/批发 · 2010-09-17
浏览599
xiao112301xiao112301业务系统分析师IBM
RS中基于CUBE数据源的同期、本年累计等MDX写法所有的例子中:month参数指向月粒度、year参数指向年粒度。日期层次结构为:年、季度、月、日 1. 去年同期:即查询月为200905的话,该指标为200805该指标total([金额] within set parallelPeriod([日期].[日期层次结构].[年],1,[日...显示全部
RS中基于CUBE数据源的同期、本年累计等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?)))

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,这个和数组是类似的.

6、同比与环比

同比增长  (以日期为行维)
([销售金额]- value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额])))
/
value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额]))

环比增长   (以日期为行维)
([销售金额]-value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额])))
/
value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额]))收起
零售/批发 · 2010-09-07
浏览543
xiao112301xiao112301业务系统分析师IBM
本人一般用value(tuple(,)) 函数获取同期数据值。显示全部
本人一般用value(tuple(,)) 函数获取同期数据值。收起
零售/批发 · 2010-07-29
浏览545

    提问者

    贝克汉姆
    软件开发工程师IBM

    相关问题

    相关资料

    问题状态

  • 发布时间:2010-01-18
  • 关注会员:0 人
  • 问题浏览:42327
  • 最近回答:2014-02-12
  • X社区推广