姓名 旷工日期
张三 2011-9-14
张三 2011-9-15
张三 2011-9-16
李四 2011-9-10
李四 2011-9-12
李四 2011-9-14
张三 2011-9-20
想这样实现,按姓名和连续三天以上旷工显示,如张三连续旷工三天的为2011-9-14,2011-9-15,2011-9-16三条显示,而2011-9-20则无需显示,李四旷工的三天不是连续的,不需要显示。
CREATE TABLE [dbo].[OA](
[F_NAME] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[F_DATE] [datetime] NULL
)
insert into oa values('张三','20110914')
insert into oa values('张三','20110915')
insert into oa values('张三','20110916')
insert into oa values('李四','20110910')
insert into oa values('李四','20110912')
insert into oa values('李四','20110914')
insert into oa values('张三','20110920')
SELECT A.* FROM OA A
INNER JOIN OA B
ON A.F_NAME = B.F_NAME
AND A.F_DATE = B.F_DATE - 1
INNER JOIN OA C
ON B.F_NAME = C.F_NAME
AND B.F_DATE = C.F_DATE - 1
create table tb(姓名 nvarchar(10),旷工日期 datetime)
insert into tb select '张三','2011-9-14'
insert into tb select '张三','2011-9-15'
insert into tb select '张三','2011-9-16'
insert into tb select '李四','2011-9-10'
insert into tb select '李四','2011-9-12'
insert into tb select '李四','2011-9-14'
insert into tb select '张三','2011-9-20'
go
select a.姓名,a.旷工日期,b.旷工日期,c.旷工日期
from tb a inner join tb b on a.姓名=b.姓名 and datediff(d,a.旷工日期,b.旷工日期)=1
inner join tb c on c.姓名=b.姓名 and datediff(d,b.旷工日期,c.旷工日期)=1
/*
姓名 旷工日期 旷工日期 旷工日期
---------- ----------------------- ----------------------- -----------------------
张三 2011-09-14 00:00:00.000 2011-09-15 00:00:00.000 2011-09-16 00:00:00.000
(1 行受影响)
*/
go
drop table tb
select min(rq) as start2 -- 起始日期 ...,max(id1)-min(id1)+1 as dayy -- 连续天数 ,dif -- 分组 from ( select (t1.id1+t2.id2) as dif ,t1.rq ,t1.id1 ,t2.id2 from ( ...
文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储...
本篇文章sql为oracle写法,以下链接为mysql写法: https://blog.csdn.net/hai2653068/article/details/102504680 --天排序 select TO_CHAR( to_date('2017/05/01', ' YYYY/MM/dd ')...
有时候我们在展示数据的时候想要展示本月所有天数的数据,但是我们数据库里只存储了有数据的日期,当天没有数据插入的数据就没有存储,例如这样:--测试数据 if not object_id(N'Tempdb..#T') is null drop table #...
2.如果缴费周期连续(如:一次性缴费8,9,10月份),则所属日期显示:8/1---10/31 如果缴费周期中断(如:缴费7,8,10月份),则所属日期显示:7/1--8/31;10/1--10/31 请告诉指点,不胜感激!
题目如图: 环境:mysql 数据库建表:CREATE TABLE `T1` ( `userID` int(11) NOT NULL, `monthID` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8全部记录:SELECT * FROM T1;10002 2 ...
1,新增转换时间为毫秒函数(转载) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: GGA -- Create date: 2013-03-28 -- Description: 将时间...
1.@cdate := 是定义名为cdate的变量并赋值...2.@cdate := DATE_ADD('20171219', INTERVAL + 1 DAY) 按照传入的日期'20171219',加一天 3.SELECT @cdate := DATE_ADD('20171219', INTERVAL + 1 DAY) FROM `order`
例如你统计一周的数据,然后中间的数据都不存在会出现只有2条数据 例如:2019-08-01 ,2019-08-07;mysql排序只有2条,你需要8条数据 吧中间补全,可以用这种方式 SELECT data.day,IFNULL(data.count, 0), day_list....
-- 生成截止昨天,最近7天日期 select trunc(sysdate-1 + rownum-7,'dd') dt from dual connect by rownum <= 7;
IF OBJECT_ID('tempdb..#Test_Gap') IS NOT NULL DROP TABLE #Test_Gap go CREATE TABLE #Test_Gap ( id INT IDENTITY, CreateDate DATETIME ) go INSERT INTO #Test_Gap VALUES (GETDATE()-20) ...
一般的,在我们分页查询的时候,我们会遇到一些不连续的数据, 那么该如何查询呢,我们可以利用行数来解决这个问题,因为行数是连续的 : 套用公式 select * from ( select ROW_NUMBER() over(order by id) as rn ,*...
日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,同时节省物理存储空间。 一般,应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是用来读取、统计和处理这些值。 ...
SQL语句统计连续登陆的三天数和以上的用户案例分析 这个问题可以扩展到很多相似的问题:连续几个月充值会员、连续天数有商品卖出、连续打滴滴、连续逾期。 测试数据:用户ID、登入日期 uid,dt guid01,2018-02-28 ...
连续三天购物,就是同一个用户相邻的订单日期都相差1天,比如A001用户2019/10/4、2019/10/5、2019/10/6就是连续三天购物。 可以通过日期将表自连接起来,如果以客户编号相同和日期隔一天为连接条件将表自连接,存在...
MySQL中实现连续日期内数据统计,缺省天数0补全昨天群里有同学在问:想要查找当前日期到前7天时间内,每天的数据量总和是多少?这个相信很多人都可以想到直接用group by data就可以实现,但是这里有一个关键,现在...
MySQL 面试题 MySQL 涉及的内容非常非常非常多,所以面试题也容易写的杂乱。当年,我们记着几个一定要掌握的重心: 重点的题目添加了【重点】前缀。 索引。 ...因为 MySQL 还会有部分内容和运维相关度比较高,所以...
我的原始数据是这样的 |ID |time |Status |215CSZ00 |2015/11/30 23:53:41 |2 |21CUG0HB |2015/11/30 23:54:17 |1 |21CUG0HB |2015/11/30 23:54:22 |1 |21UA75CS |2015/11/30 23:54:54 |1 ...
SQL Server之数据分页显示 作者:谢景,撰写时间:2019-2-20 在一个好的项目中肯定存储很多数据,而我们显示大量数据常常会用到分页显示,下面分享一下在SQL Server进行数据分页的方法。 思路:先对表进行排序和赋值...
有一个包含employeeid,StartDateTime和EndDatetime的sql表,如下所示: create table Sample( SNO INT, EmployeeID NVARCHAR(10), StartDateTime DATE, EndDateTime DATE ) INSERT INTO Sample VALUES ( 1, ...
https://blog.csdn.net/guoqing2016/article/details/91038162
在数据库操作中,经常有一些这样的操作:插入诺干条测试数据、查询这个月的登录情况(没有登录的日期不能不存在,要显示数量为0),获取诺干条guid。 这些的基础都是怎么生成连续的一串数字 1 2 3 4 ……………… ...
with monthtemp(mon) as ( select 1 mon union all select mon+1 from monthtemp where mon<12 ) ,yeartemp(yea) as ...select 1991 yea --开始年份 ...select yea+1 from yeartemp where yea<...
常见数据库管理系统有:Access、mysql、sql server 2)特点 ①数据库数据特点 永久存储、有组织、可共享。 (数据的最小存取单位是数据项) ②数据库系统的特点 数据结构化 数据的...
测试开发笔记 第一章 测试基础 7 什么是软件测试: 7 ★软件测试的目的、意义:(怎么做好软件测试) 7 3.软件生命周期: 7 第二章 测试过程 8 1.测试模型 8 H模型: 8 V模型 9 2.内部测试 10 ...
C#基础教程-c#实例教程,适合初学者。 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。...
我想用echarts的折线图显示每个month下的value。然而在撸完java后发现一个问题:数据库中有的month之间并不连续,举个栗子:数据库中有2014-04,2014-06,但是却没有2014-05(此时应该设置2014-05的value为0)。这就...
1、案例中的数据结构和数据如下 2、在没有解决的时候,是这样的 SELECT date(downtime) AS dday, count(*) AS ...我们看到,时间不连续,没有2016-3-05这一天的,这样本来不是问题,但是,我拿出来的数据,还
1.排名函数 ROW_NUMBER 他会为查询出来的每一行记录生成一个序号,依次排序且不会重复。示例代码如下: select ROW_NUMBER() OVER(order by [price] desc) as row_num,* from [Order] 原始数据为 ...
2020简历模板合集