做统计报表常⽤的设计思路
最近做⼀个项⽬中碰到⼀个这样的问题:
业务数据保存的表如下:订单主表,订单明细表,订单备货表,订单到货表,结算⾦额表;(实际上还有⼀套历史记录表)
其中订单备货表就是订单明细表,⽤不同的字段表⽰备货信息,并且有⼀个备货⽇期字段。
法国签证好办吗现在要实现的是,按项⽬,按销售卖⽅企业,买⽅企业做维度来分组统计。需要得到的报表如下:
项⽬名称订购⾦额备货⾦额到货⾦额结算⾦额
项⽬A 10,000 8,000 8,000 7,000
......
查询条件为:项⽬:______________ 买⽅企业:____________ 卖⽅企业:___________
⽇期:_______到_______
这看起来很容易实现,⼀般⽤户也很⾃然的会需要出这样的报表。
但是细看起来,不是很容易出这个报表,因为订购⾦额,备货⾦额,到货⾦额,结算⾦额这些关键的数据在不同的表中,查询条件⽇期关联的字段也是不⼀样的。
所以我的设计⽅案如下:
建⽴按项⽬,买⽅企业,卖⽅企业,和⽇期(去掉时间)为维度的⼀个统计表,这个统计表中包含的字段有
项⽬
统计表怎么做买⽅企业
卖⽅企业
⽇期
订购⾦额
备货⾦额
原神风龙废墟到货⾦额
结算⾦额
然后订购⾦额从订单明细表,group by项⽬,买⽅企业,卖⽅企业,订购⽇期(⽇期⽤trunc(⽇期)去掉时间)得出订货结果集
备货从订单明细表,也是group by项⽬,买⽅企业,卖⽅企业,备货⽇期得到备货结果集
到货从到货表 group by 出来得到到货结果集
结算从结算的表中group by 出来得到结算结果集
将上述4个结果集union在⼀起,同时输出项⽬,买⽅,卖⽅,⽇期,订购⾦额,备货⾦额,到货⾦额,结算⾦额这些列,每个结果集中没有的列⽤0补上。形成⼀个包含所有数据的结果集,再对这个结果集做分类汇总,再⽤insert into XXX() select * from ()的语句插⼊到建⽴好的统计表中,备查询⽤。
因为数据量⽐较⼤,所以最好还是建⽴好统计表,将这些⽣成结果的写成脚本,让数据库每天晚上定时执⾏,将业务数据分类汇总到统计表中。第⼆天⽤户只查询这些统计表,速度不会受到影响;
但是有个问题就是,查询的数据不包含当天的,不能实时反应当时的汇总数据。笔记本摄像头设置
一千万美金等于多少人民币其实这个报表的查询还帯有⼀些⼦查询,就是对具体买⽅企业,卖⽅企业,交易商品明细等等的查询,我的设计思路跟这个主表的类似,就不再细究。人教版二年级下册数学期中试卷
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论