关于合同时间的SQL
求一个关于合同时间的SQL
一张表里有列名 职工编号 合同签定日期 到期日期 一个职工编号 可以会有多条数据
比如 A0001 1999.1.1 2000.1.1
A001 2000.1.1 2005.1.1
A001 2005.1.1 2009.1.1
A001 2009.1.1 2013.1.1
A002 2009.1.1 2012.1.1
A002 2012.1.1 2014.1.1
我现在要看全司员工的合同已到期 并且未续签员工的名单,谢谢!
------解决方案--------------------
------解决方案--------------------
select * from (SELECT 职工编号,合同签定日期,MAX(到期日期) AS '_date' FROM 表
GROUP BY 职工编号) a where _date<getdate()
------解决方案--------------------
一张表里有列名 职工编号 合同签定日期 到期日期 一个职工编号 可以会有多条数据
比如 A0001 1999.1.1 2000.1.1
A001 2000.1.1 2005.1.1
A001 2005.1.1 2009.1.1
A001 2009.1.1 2013.1.1
A002 2009.1.1 2012.1.1
A002 2012.1.1 2014.1.1
我现在要看全司员工的合同已到期 并且未续签员工的名单,谢谢!
------解决方案--------------------
(SELECT 职工编号,MAX(到期日期) AS '到期日期' FROM tb
GROUP BY 职工编号)a where DATEDIFF(day,到期日期,GETDATE())>0
------解决方案--------------------
select * from (SELECT 职工编号,合同签定日期,MAX(到期日期) AS '_date' FROM 表
GROUP BY 职工编号) a where _date<getdate()
------解决方案--------------------
create table tb
(
职工编号 varchar(20),
合同签定日期 varchar(20),
到期日期 varchar(20),
职工姓名 varchar(20),
出生日期 varchar(20)
)
insert into tb
select 'A0001','1999.1.1','2000.1.1','刘一','1989.1.1' union all
select 'A0001','2000.1.1','2005.1.1','刘一','1989.1.1' union all
select 'A0001','2005.1.1','2009.1.1','刘一','1989.1.1' union all
select 'A0001','2009.1.1','2013.1.1','刘一','1989.1.1' union all
select 'A0002','2009.1.1','2012.1.1','陈二','1989.1.1' union all
select 'A0002','2012.1.1','2014.1.1','陈二','1989.1.1' union all
select 'A0003','1999.1.1','2010.1.1','张三','1989.1.1' union all
select 'A0004','1999.1.1','2020.1.1','李四','1989.1.1' union all
select 'A0005','1999.1.1','2030.1.1','王五','1989.1.1' union all
select 'A0006','1999.1.1','2011.1.1','赵六','1989.1.1'
select t2.* from tb t2 where
exists
(select 1 from (select t1.职工编号,MAX(t1.到期日期)as 到期日期 from tb t1 group by t1.职工编号
having DATEDIFF(day,max(到期日期),getdate())>0)a where t2.职工编号=a.职工编号
and t2.到期日期=a.到期日期)
----------
职工编号 合同签定日期 到期日期 职工姓名 出生日期
-------------------- -------------------- -------------------- -------------------- --------------------
A0001 2009.1.1 2013.1.1 刘一 1989.1.1
A0003 1999.1.1 2010.1.1 张三 1989.1.1