做报表的一些注意事项,请大家一起提出来
0
许多工作都是完成报表,有了数据就需要按照各种要求完成报表;一些是软件的要求,一些是后期客户的要求。做不完的报表,层出不穷的报表,也是解决不完的问题。我想整理一下做这些报表的需要注意的事项,或者基本的原则。
我先提供一个例子:
例如需要完成一个报表,有一个按月的业务数据
月份 部门 收入
2013-01 开发部 300000
.......
需要完成这样的一个报表:
部门 当年收入 去年收入 增长率 增长额
正确的写法可能是:
select year(a.月份) 年份,a.部门,sum(a.收入) 当年收入,
sum(b.收入) 去年收入,sum(a.收入) - sum(b.收入) 增长额
from (
select a.,b.
from table as A left join table as b
on a.月份= b.月份 + 一年
) as tableS
group by year(a.月份)
注意:year这个函数是我杜撰的,其功能是取得年份
这样的实现,当查询的时间没有到年底的时候,保证了当年数据和上年数据包含的月份是一样的。例如:当前是2013年10月份,当年收入肯定是2013年1月--2013年10月份的,相应去年收入也是这样一个时段,保证了数据的一致性。
相反,如果现将业务数据按年合并汇总后,再关联产生需要报表的样子,就会出现去年的数据是一年合并的,本年度确是几个月的情况,导致错误。
这样的经典问题,层出不穷,有没有遇到过?或者说已经有人整理过了,请大家跟帖提供
我先提供一个例子:
例如需要完成一个报表,有一个按月的业务数据
月份 部门 收入
2013-01 开发部 300000
.......
需要完成这样的一个报表:
部门 当年收入 去年收入 增长率 增长额
正确的写法可能是:
select year(a.月份) 年份,a.部门,sum(a.收入) 当年收入,
sum(b.收入) 去年收入,sum(a.收入) - sum(b.收入) 增长额
from (
select a.,b.
from table as A left join table as b
on a.月份= b.月份 + 一年
) as tableS
group by year(a.月份)
注意:year这个函数是我杜撰的,其功能是取得年份
这样的实现,当查询的时间没有到年底的时候,保证了当年数据和上年数据包含的月份是一样的。例如:当前是2013年10月份,当年收入肯定是2013年1月--2013年10月份的,相应去年收入也是这样一个时段,保证了数据的一致性。
相反,如果现将业务数据按年合并汇总后,再关联产生需要报表的样子,就会出现去年的数据是一年合并的,本年度确是几个月的情况,导致错误。
这样的经典问题,层出不穷,有没有遇到过?或者说已经有人整理过了,请大家跟帖提供
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
2 个回复
BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2013-12-11 回答
赞同来自:
housheng33 - 专注金融BI http://blog.csdn.net/housheng33 2014-04-11 回答
赞同来自:
2、提供追溯功能,用户看到这个值后往下追下去看看是什么原因引起的!