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

最近一直在用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

李四

..

..

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

原来一列是这样的:

 

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

实现方式如下:

首先创建一个时间表(当然这里我关注的只是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
)

其次,插入数据,插入数据之后的效果是这样的:

最后编写sql进行实现,实现的sql语句如下所示:

select max(a) in_time, max(b) out_timefrom (select decode(mod(rownum, 2), 1, scan_time) a,decode(mod(rownum, 2), 0, scan_time) b,round(rownum / 2) cfrom CMIS_PERSON_FI_DETAIL_TB)group by corder by c;

运行sql,得到了想要的效果,如下所示:

转载于:https://www.cnblogs.com/longshiyVip/p/4590956.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现DDD领域驱动设计: Part 2

原文链接: https://dev.to/salah856/implementing-domain-driven-design-part-ii-2i36实现:构建块这是本系列的重要部分。我们将通过示例介绍和解释一些明确的规则。在实现领域驱动设计时,你可以遵循这些规则并应用到你的解决方案中。示例示例将使用GitH…

王彪20162321 2016-2017-2 《程序设计与数据结构》第5周学习总结

王彪 2016-2017-2 《程序设计与数据结构》第5周学习总结 教材学习内容总结 1.关键概念 1.面向对象程序设计的核心是类的定义,它代表了状态和行为的对象。2.变量的作用域依赖于变量声明的位置,作用域决定在哪里可以使用变量。3.对象应该是封装的&#xff…

c语言指针索引数组,C语言数组指针表示法

指针在处理数组时很有用,我们可以用指针指向已有的数组,也可以从堆上分配内存然后把这块内存当做一个数组使用。数组表示法和指针表示法在某种意义上可以互换。不过,它们并不完全相同,后面的“数组和指针的差别”中会详细说明。单…

C# 使用AggregateException 信息

为了得到所有失败任务的异常信息,可以将 Task.WhenAll 返回的结果写到一个Task 变量中。这个任务会一直等到所有任务都结束。否则,仍然可能错过抛出的异常。上一小节中,catch 语句只检索到第一个任务的异常。不过,现在可以访问外部…

Android之内置和外置sdcard路径显示并且写入数据

1、效果图片 2、部分代码 package com.example.sdcardcheck;import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Array; import java.lang.…

数据挖掘——数据仓库

虽然存在数据仓库并不是数据挖掘的先决条件,但实际上,若能访问数据仓库,数据挖掘的任务就会变得容易的多。 数据仓库的主要目标是增加决策过程的“情报”和此过程的相关人员的知识。数据仓库对不同的人来说有不同的意义。 数据仓库是一个集成…

OxyPlot 导出图片及 WPF 元素导出为图片的方法

OxyPlot 导出图片及 WPF 元素导出为图片的方法目录OxyPlot 导出图片及 WPF 元素导出为图片的方法一、OxyPlot 自带导出方法二、导出 WPF 界面元素的方法三、通过附加属性来使用独立观察员 2022 年 2 月 26 日最近有个需求,就是将 OxyPlot 图形导出图片。经过尝试&am…

delphi中利用Indy的TIdFtp控件实现FTP协议

2019独角兽企业重金招聘Python工程师标准>>> delphi中利用Indy的TIdFtp控件实现FTP协议版权声明:本文为博主原创文章,未经博主允许不得转载。现在很多应用都需要上传与下载大型文件,通过HTTP方式上传大文件有一定的局限性。幸好FT…

C++之map插入数据相同的key不能覆盖value解决办法

1、问题 C里面,如果map里面插入之前的<key, value>,如果key在map里面有的话&#xff0c;不会覆盖之前的value,一般先判断之前有没有数据&#xff0c;有的话先删除&#xff0c;然后再去添加。 2、代码实现 3、运行结果

【BZOJ】【4145】【AMPPZ2014】The Prices

状压DP/01背包 Orz Gromah 容易发现m的范围很小……只有16&#xff0c;那么就可以状压&#xff0c;用一个二进制数来表示买了的物品的集合。 一种简单直接的想法是&#xff1a;令$f[i][j]$表示前$i$个商店买了状态集合为$j$的商品的最小代价&#xff0c;那么我们转移的时候就需…

WPF 实现人脸检测

WPF开发者QQ群此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。接着上一篇利用已经训练好的数据文件,检测人脸 地址如下&#xff1a;http…

C++之函数的默认值参数说明

1、思考 今天看到C代码的时候&#xff0c;发现文件里面的函数定义和实现都有3个参数&#xff0c;特码调用的时候只有2个参数了&#xff0c;日了狗&#xff0c;java里面好像没有这种方式&#xff0c;后来才发现是默认参数 2、代码实现 3、展示结果 4、总结 注意默认参数需要写…

插头DP

AC HDU1693 不能再简单了的插头DP 1 #include <cstdio>2 #include <fstream>3 #include <iostream>4 5 #include <cstdlib>6 #include <cstring>7 #include <algorithm>8 #include <cmath>9 10 #include <queue>11 #include…

自定义控件详解(四):Paint 画笔路径效果

Paint 画笔 &#xff0c;即用来绘制图形的"笔" 前面我们知道了Paint的一些基本用法&#xff1a; paint.setAntiAlias(true);//抗锯齿功能 paint.setColor(Color.RED); //设置画笔颜色 paint.setStyle(Style.FILL);//设置填充样式 paint.setStrokeWidth(10);//设…

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

去年.NET Conf China 技术大会上&#xff0c;我给大家分享了主题《轻松玩转.NET大规模版本升级》&#xff0c;今天把具体分享的内容整理成一篇博客&#xff0c;供大家研究参考学习。一、先说一下技术挑战和业务背景我们公司&#xff1a;特来电新能源股份有限公司&#xff1a;中…

ASP.NET Core基于滑动窗口算法实现限流控制

前言在实际项目中&#xff0c;为了保障服务器的稳定运行&#xff0c;需要对接口的可访问频次进行限流控制&#xff0c;避免因客户端频繁请求导致服务器压力过大。而AspNetCoreRateLimit[1]是目前ASP.NET Core下最常用的限流解决方案。查看它的实现代码&#xff0c;我发现它使用…

linux操作系统cp命令

转载于:https://www.cnblogs.com/skl374199080/p/3863918.html

sql必读的九本书

2019独角兽企业重金招聘Python工程师标准>>> 原文地址 直接上书(书籍以后会陆续加上去)书籍下载地址 《MySQL必知必会》《SQL学习指南&#xff08;第2版 修订版&#xff09;》《MySQL技术内幕——InnoDB存储引擎》《Redis设计与实现》《ZooKeeper&#xff1a;分布式…

C语言之加入头文件<stdbool.h>可以使用true和false

1、头文件<stdbool.h>介绍 &#xff08;1&#xff09;使用了<stdbool.h>后&#xff0c;可使用true和false来表示真假。 &#xff08;2&#xff09;在循环语句中进行变量声明是C99中才有的&#xff0c;因此编译时显式指明 gcc -stdc99 prime.c 2、最简单的例子 3、…

Nginx负载均衡+转发策略

负载均衡负载均衡(详解)https://cloud.tencent.com/developer/article/1526664--示例1upstream www_server_pool { server 10.0.0.5; server 10.0.0.6&#xff1a;80 weight1 max_fails1 fails_timeout10s; server 10.0.0.7&#xff1a;80 weight1 max_fails2 fails_timeo…