你的位置:首页 > 软件开发 > 数据库 > oracle处理考勤时间,拆分考勤时间段的sql语句

oracle处理考勤时间,拆分考勤时间段的sql语句

发布时间:2015-06-21 00:00:19
最近一直在用mysql数据库做云项目,有段时间没有接触oracle了,昨天有朋友叫我帮忙用oracle处理一个考勤记录的需求,我在考虑如何尽量精简实现上面花了一段时间。于是把这个实现做个记录。需求如下:rownum为奇数的为进厂时间,偶数的为离场时间第一个奇数行的时间被第一个偶数 ...

最近一直在用mysql数据库做云项目,有段时间没有接触oracle了,昨天有朋友叫我帮忙用oracle处理一个考勤记录的需求,我在考虑如何尽量精简实现上面花了一段时间。于是把这个实现做个记录。

需求如下:

  1. rownum为奇数的为进厂时间,偶数的为离场时间
  2. 第一个奇数行的时间被第一个偶数行相减,以此类推
  3. 将上面两步产生的时间结果集相加得出总时间作为当天考勤时间

最终能和别的表联合起来形成这样的展示:

 

人员

日期

工时

入厂时间

出厂时间

张三

2015/6/18

9小时30分钟

8:00:00

10:30:00

11:00:00

12:30:00

13:30:00

17:30:00

18:00:00

18:30:00

19:00:00

19:30:00

20:00:00

20:30:00

李四

..

..

 要我实现的是如何把时间一列的数据拆分成为两列来显示:

原来一列是这样的:

 oracle处理考勤时间,拆分考勤时间段的sql语句

要实现的拆分的效果是这样的:

oracle处理考勤时间,拆分考勤时间段的sql语句

实现方式如下:

首先创建一个时间表(当然这里我关注的只是scan_time这个字段,其他字段不用理会):

create table CMIS_PERSON_FI_DETAIL_TB( detail_id  NUMBER(20) not null, scan_time  DATE, person_fk_id NUMBER(20) not null)

原标题:oracle处理考勤时间,拆分考勤时间段的sql语句

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。