系统集成商业智能

年累计的计算

环境:db2 10.1.0

新建一张名为mty_test的表:
create db mty_test(date_code int,id varchar(2),no int)
包含数据如下:
date_code      id      no
————————————————
201201          01     100
201202          01     100
201203          01     100
201204          01     100
201205          01     100
201206          01     100
201207          01     100
201208          01     100
201209          01     100
201210          01     100
201211          01     100
201212          01     100
201301          01     100
201302          01     100
201303          01     100
201304          01     100
201305          01     100
201306          01     100
201307          01     100
201308          01     100
201309          01     100
201310          01     100
201311          01     100
201312          01     100
201201          02     100
201202          02     100
201203          02     100
201204          02     100
201205          02     100
201206          02     100
201207          02     100
201208          02     100
201209          02     100
201210          02     100
201211          02     100
201212          02     100
201301          02     100
201302          02     100
201303          02     100
201304          02     100
201305          02     100
201306          02     100
201307          02     100
201308          02     100
201309          02     100
201310          02     100
201311          02     100
201312          02     100

年累计的计算:
select
t1.date_code,
t1.id,t1.no,
sum(t1.no) /年累计
from mty_test t1,mty_test t2
where substr(cast(t1.date_code as varchar(6)),1,4)=substr(cast(t2.date_code as varchar(6)),1,4)
and t1.date_code>=t2.date_code
and t1.id=t2.id
group by t1.date_code,
t1.id,
t1.no
order by t1.date_code
参与13

12同行回答

zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 12# oohaozi     MDX运算后,是要把数据写进cube里的。效率不会有问题。那段查询,可以在Framework Manager中使用,也可以在report studio中使用。显示全部
回复 12# oohaozi


    MDX运算后,是要把数据写进cube里的。效率不会有问题。
那段查询,可以在Framework Manager中使用,也可以在report studio中使用。收起
系统集成 · 2013-11-12
浏览986
oohaozioohaozi商业智能工程师中科软
回复 8# zhengyi1943     前段时间做了报表,累计值是用MDX做的,好像效率没什么问题啊。源表的数据是汇总的窄表。上面那个select语句是用在报表里面么?怎么用?显示全部
回复 8# zhengyi1943


    前段时间做了报表,累计值是用MDX做的,好像效率没什么问题啊。源表的数据是汇总的窄表。上面那个select语句是用在报表里面么?怎么用?收起
互联网服务 · 2013-11-12
浏览989
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 10# 奥利弗     是这样的。然后在运行中做增量更新。显示全部
回复 10# 奥利弗


    是这样的。
然后在运行中做增量更新。收起
系统集成 · 2013-08-08
浏览1067
奥利弗奥利弗数据库开发工程师北纬股份有限公司
回复 8# zhengyi1943 我们项目上的累计数据也是算好存到事实表里面的显示全部
回复 8# zhengyi1943

我们项目上的累计数据也是算好存到事实表里面的收起
互联网服务 · 2013-08-08
浏览1100
ChaneyChaney总经理/总裁四川云翼科技有限公司
最近也遇到这个问题显示全部
最近也遇到这个问题收起
互联网服务 · 2013-08-08
浏览1057
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 7# sealink     你的意思是把这个过程放在ETL中做。那我们找到共同点了。这里只是给出方法而已,而且是第一次全量处理的方法。在使用时,必须把计算后写到表中,不然效率无法接受。...显示全部
回复 7# sealink


    你的意思是把这个过程放在ETL中做。那我们找到共同点了。
这里只是给出方法而已,而且是第一次全量处理的方法。在使用时,必须把计算后写到表中,不然效率无法接受。收起
系统集成 · 2013-08-01
浏览1068
sealinksealink技术总监sealink.com
回复 6# zhengyi1943 数据表中加列,根据具体情况,有月累计、季累计、年累计;在ETL跑批时会把累计字段填写,计算逻辑就是昨日的月累计、季累计、年累计的值+今日的值   就称为今日的月累计、季累计、年累计的值;以后模型中拿数据,直接拿月累计、季累计、年累计就可以...显示全部
回复 6# zhengyi1943

数据表中加列,根据具体情况,有月累计、季累计、年累计;

在ETL跑批时会把累计字段填写,计算逻辑就是
昨日的月累计、季累计、年累计的值+今日的值   就称为
今日的月累计、季累计、年累计的值;

以后模型中拿数据,直接拿月累计、季累计、年累计就可以。收起
银行 · 2013-08-01
浏览1081
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 3# sealink 回复 5# 奥利弗 这是为了回答昨天一个网友的帖子写的。在项目实践中,还没使用过。不知道二位有没有比较完善的解决方案?分享一下。显示全部
回复 3# sealink
回复 5# 奥利弗
这是为了回答昨天一个网友的帖子写的。在项目实践中,还没使用过。
不知道二位有没有比较完善的解决方案?分享一下。收起
系统集成 · 2013-08-01
浏览1095
奥利弗奥利弗数据库开发工程师北纬股份有限公司
这只是权宜之策啊显示全部
这只是权宜之策啊收起
互联网服务 · 2013-08-01
浏览1040
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 3# sealink     这只是提供了一个方法。真的大数据,一定要把数据落实,而不能在运行的时候计算。把计算的数据写到另一张表里。第一次处理,可能会很慢,之后增量更新,就很快了。...显示全部
回复 3# sealink


    这只是提供了一个方法。真的大数据,一定要把数据落实,而不能在运行的时候计算。
把计算的数据写到另一张表里。第一次处理,可能会很慢,之后增量更新,就很快了。收起
系统集成 · 2013-08-01
浏览1064

提问者

zhengyi1943
CEO南京正一信息科技有限公司
擅长领域: 商业智能大数据cognos

相关问题

相关资料

问题状态

  • 发布时间:2013-08-01
  • 关注会员:1 人
  • 问题浏览:5820
  • 最近回答:2013-11-12
  • X社区推广