互联网服务商业智能统计

【已解决】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同行回答

duojie002duojie0020天源迪科
我觉得很不错显示全部
我觉得很不错收起
2010-10-19
浏览511
liren2001liren2001工程师home
小贝抛砖引玉,冰妹妹接得好,学习了显示全部
小贝抛砖引玉,冰妹妹接得好,学习了收起
零售/批发 · 2010-09-17
浏览598
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
浏览542
leonwangleonwang工程师基建
不错,学习显示全部
不错,学习收起
政府机关 · 2010-09-03
浏览527
看起来好复杂的样子。。显示全部
看起来好复杂的样子。。收起
2010-08-30
浏览514
zhangguozhi0zhangguozhi0BI开发工程师LIT
学习了,{:2_35:}显示全部
学习了,{:2_35:}收起
政府机关 · 2010-08-24
浏览510
goodddddddddd显示全部
goodddddddddd收起
2010-08-16
浏览468
zhenfang_lizhenfang_li软件开发工程师华为
有点不懂函数是什么意思,回去自己好好研究一下。显示全部
有点不懂函数是什么意思,回去自己好好研究一下。收起
互联网服务 · 2010-08-15
浏览499
wangyu88886wangyu88886软件开发工程师北京腾信
不错!不错显示全部
不错!不错收起
互联网服务 · 2010-08-02
浏览495
wingseawingsea项目经理YTEC
行家过招,般般!!显示全部
行家过招,般般!!收起
互联网服务 · 2010-08-02
浏览515

提问者

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

相关问题

相关资料

问题状态

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