0 0

只有一张记录表,数据统计报表实现的诱惑0

情况是这样的,公司在弄一个日报系统,数据的录入部分基本上完成了,现在要在做统计报表的模块。

录入部分:用户登录系统后,在录入界面填写日报,作为我们统计的基础数据。
          每个用户都挂在部门下面,部门可以调整,人员也可以调整。

统计部门:暂时只有两个维度
1:统计个人在某个时间段内的日均工时和累计工时。
2:统计某个时间段内某个部门的人数、日均工时和累计工时。


问题都出在统计这块:
1、我们只有一张日报数据记录表,日均工时的计算公式:
日均工时=总工时/天数,无法确认天数(可能上班了,但是没填日报)。
2、部门可以调整,人员也可以调整,但是部门表是信息表、部门人员表是一张关系表,只能表示最后的状态,无法知道过去时间段的状态。我原先打算就直接拿日报记录表里的数据进行计算,但是仍然存在1 中的问题。


希望各位能够提供一些相对简单的方案和实现思路。谢谢!

问题补充:持久层用的是hibernate,感觉这种复杂点的统计,还是JDBC会爽点?不知道是不是这样
2013年11月04日 13:55

3个答案 按时间排序 按投票排序

0 0

. 统计某个时间段内某个部门的人数: 这个需求应该是有问题的,部门的人数应该是基于时间点的,而不是时间段的(部门人数会变化)

. 部门的统计报表需要以日报表为基准(日报表里面写入部门的ID),否则统计会不准确;

. 日均工时:没怎么看懂,是否上班了对系统来说应该是以日报为单位的,所以日均工时应该是 员工一段时间内的总工时 / 这段时间内提交日报的数量(假定每天最多只能提交一份日报),不关心该员工是否更换过部门,上班没填日报,应该算作没有上班比较好。

对于统计报表来说,Hibernate实际上优势不大,或者说谈不上什么优势,建议使用JDBCTemplate(Spring)或者MyBatis(管理SQL上方便一些)

2013年11月07日 08:40
0 0

这个最好提前加工数据

2013年11月04日 19:35
0 0

看你的统计粒度都是按天的;
你可以每天统计一次,把每天的结果存下来;
然后在统计结果表;

2013年11月04日 16:50

相关推荐

Global site tag (gtag.js) - Google Analytics