一个简单的SQL查询语句
时间:2011-12-12
来源:互联网
--用户表
userid username serial sex
1001 zhangsan abcdjhg M
1002 lisi sdfdddd F
1003 wangwu stfffff F
--考勤表
id userid ktime kcode FT
1 1001 2011-12-09 10:20:00.000 01201001 0001
2 1002 2011-12-09 10:20:00.000 01201002 0001
3 1002 2011-12-10 08:23:00.000 01201002 0002
4 1003 2011-12-08 08:25:00.000 01201003 0021
--查出结果
userid username serial SEX ktime kcode FT
1001 zhangsan abcdjhg M 2011-12-09 10:20:00.000 01201001 0001
1002 lisi sdfdddd F 2011-12-10 08:23:00.000 01201002 0002
1003 wangwu stfffff F 2011-12-08 08:25:00.000 01201003 0021
也就是找出用户表中每个用户最近的那条考勤记录,然后合并成一个新的用户表
userid username serial sex
1001 zhangsan abcdjhg M
1002 lisi sdfdddd F
1003 wangwu stfffff F
--考勤表
id userid ktime kcode FT
1 1001 2011-12-09 10:20:00.000 01201001 0001
2 1002 2011-12-09 10:20:00.000 01201002 0001
3 1002 2011-12-10 08:23:00.000 01201002 0002
4 1003 2011-12-08 08:25:00.000 01201003 0021
--查出结果
userid username serial SEX ktime kcode FT
1001 zhangsan abcdjhg M 2011-12-09 10:20:00.000 01201001 0001
1002 lisi sdfdddd F 2011-12-10 08:23:00.000 01201002 0002
1003 wangwu stfffff F 2011-12-08 08:25:00.000 01201003 0021
也就是找出用户表中每个用户最近的那条考勤记录,然后合并成一个新的用户表
作者: zlydaaa 发布时间: 2011-12-12
SQL code
create table 用户表(userid int,username varchar(10),serial varchar(10),sex char(10)) insert into 用户表 select 1001,'zhangsan','abcdjhg','M' insert into 用户表 select 1002,'lisi','sdfdddd','F' insert into 用户表 select 1003,'wangwu','stfffff','F' create table 考勤表(id int,userid int,ktime datetime,kcode varchar(10),FT varchar(10)) insert into 考勤表 select 1,1001,'2011-12-09 10:20:00.000','01201001','0001' insert into 考勤表 select 2,1002,'2011-12-09 10:20:00.000','01201002','0001' insert into 考勤表 select 3,1002,'2011-12-10 08:23:00.000','01201002','0002' insert into 考勤表 select 4,1003,'2011-12-08 08:25:00.000','01201003','0021' go select a.userid,a.username,a.serial,a.sex,b.ktime,b.kcode,b.ft from 用户表 a inner join 考勤表 b on a.userid=b.userid where not exists(select 1 from 考勤表 where userid=b.userid and ktime>b.ktime) /* userid username serial sex ktime kcode ft ----------- ---------- ---------- ---------- ----------------------- ---------- ---------- 1001 zhangsan abcdjhg M 2011-12-09 10:20:00.000 01201001 0001 1002 lisi sdfdddd F 2011-12-10 08:23:00.000 01201002 0002 1003 wangwu stfffff F 2011-12-08 08:25:00.000 01201003 0021 (3 行受影响) */ go drop table 用户表,考勤表
作者: qianjin036a 发布时间: 2011-12-12
SQL code
select a.userid,a.username,a.serial,a.sex,b.ktime,b.kcode,b.ft from 用户表 a ,考勤表 b where a.userid=b.userid and ktime=(select min(ktime) from 考勤表 where userid=b.userid )
作者: fredrickhu 发布时间: 2011-12-12
SQL code
select a.userid,a.username,a.serial,a.sex,b.ktime,b.kcode,b.ft from 用户表 a ,考勤表 b where a.userid=b.userid and ktime=(select max(ktime) from 考勤表 where userid=b.userid )
作者: fredrickhu 发布时间: 2011-12-12
select userid, username, serial, sex,ktime, kcode, FT from 用户表 a
left join 考勤表 b on a.userid=b.userid and
ktime=(select max(ktime) from 考勤表 where userid=b.userid )
left join 考勤表 b on a.userid=b.userid and
ktime=(select max(ktime) from 考勤表 where userid=b.userid )
作者: dhlb 发布时间: 2011-12-12
select userid, username, serial, sex,ktime, kcode, FT from 用户表 a
left join 考勤表 b on a.userid=b.userid
where ktime=(select max(ktime) from 考勤表 where userid=b.userid )
left join 考勤表 b on a.userid=b.userid
where ktime=(select max(ktime) from 考勤表 where userid=b.userid )
作者: baiying15 发布时间: 2011-12-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28