求一个sql 语句得出所有人在某一天的最早上班时间和最晚下班时间
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/29 17:31:13
求一个sql 语句得出所有人在某一天的最早上班时间和最晚下班时间
测试数据:
字段action是指开电脑的系统记录的登录系统时间
一张数据库表:
ID Name Logtime action
1 张三 2011-08-24 08:00 登录
2 张三 2011-08-24 08:31 登录
3 张三 2011-08-24 09:20 离开
4 张三 2011-08-24 09:29 登录
5 张三 2011-08-24 13:50 离开
6 张三 2011-08-24 14:20 登录
7 张三 2011-08-24 15:20 登录
8 张三 2011-08-24 16:30 离开
9 张三 2011-08-24 08:00 登录
10 陶明 2011-08-24 07:31 登录
11 陶明 2011-08-24 08:20 离开
12 陶明 2011-08-24 09:50 登录
13 陶明 2011-08-24 15:50 离开
14 陶明 2011-08-24 16:10 离开
15 陶明 2011-08-24 16:42 离开
最早上班时间必须是action=登录 的最早Logtime(loginTime),最晚下班时间必须是action=离开 的最晚Logtime(logoutTime)
最后想得出的结果是:
Logtime name loginTime logoutTime
日期 姓名 最早上班时间 最晚下班时间
请问具体的sql语句怎么写?
测试数据:
字段action是指开电脑的系统记录的登录系统时间
一张数据库表:
ID Name Logtime action
1 张三 2011-08-24 08:00 登录
2 张三 2011-08-24 08:31 登录
3 张三 2011-08-24 09:20 离开
4 张三 2011-08-24 09:29 登录
5 张三 2011-08-24 13:50 离开
6 张三 2011-08-24 14:20 登录
7 张三 2011-08-24 15:20 登录
8 张三 2011-08-24 16:30 离开
9 张三 2011-08-24 08:00 登录
10 陶明 2011-08-24 07:31 登录
11 陶明 2011-08-24 08:20 离开
12 陶明 2011-08-24 09:50 登录
13 陶明 2011-08-24 15:50 离开
14 陶明 2011-08-24 16:10 离开
15 陶明 2011-08-24 16:42 离开
最早上班时间必须是action=登录 的最早Logtime(loginTime),最晚下班时间必须是action=离开 的最晚Logtime(logoutTime)
最后想得出的结果是:
Logtime name loginTime logoutTime
日期 姓名 最早上班时间 最晚下班时间
请问具体的sql语句怎么写?
use Tempdb
go
--> -->
if not object_id(N'Tempdb..#Tab') is null
drop table #Tab
Go
Create table #Tab([ID] int,[Name] nvarchar(2),[Logtime] Datetime,[action] nvarchar(2))
Insert #Tab
select 1,N'张三','2011-08-24 08:00',N'登录' union all
select 2,N'张三','2011-08-24 08:31',N'登录' union all
select 3,N'张三','2011-08-24 09:20',N'离开' union all
select 4,N'张三','2011-08-24 09:29',N'登录' union all
select 5,N'张三','2011-08-24 13:50',N'离开' union all
select 6,N'张三','2011-08-24 14:20',N'登录' union all
select 7,N'张三','2011-08-24 15:20',N'登录' union all
select 8,N'张三','2011-08-24 16:30',N'离开' union all
select 9,N'张三','2011-08-24 08:00',N'登录' union all
select 10,N'陶明','2011-08-24 07:31',N'登录' union all
select 11,N'陶明','2011-08-24 08:20',N'离开' union all
select 12,N'陶明','2011-08-24 09:50',N'登录' union all
select 13,N'陶明','2011-08-24 15:50',N'离开' union all
select 14,N'陶明','2011-08-24 16:10',N'离开' union all
select 15,N'陶明','2011-08-24 16:42',N'离开'
Go
Select
CONVERT(VARCHAR(8),[Logtime],112) AS 日期,
[Name] AS 姓名,
min(CASE WHEN [action]=N'登录' THEN convert(varchar(8),[Logtime],8) END) AS 最早上班时间,
max(CASE WHEN [action]=N'离开' THEN convert(varchar(8),[Logtime],8) END) AS 最晚下班时间
from #Tab
WHERE CONVERT(VARCHAR(8),[Logtime],112)='20110824'
GROUP BY CONVERT(VARCHAR(8),[Logtime],112),[Name]
/*
日期姓名最早上班时间最晚下班时间
20110824陶明07:31:0016:42:00
20110824张三08:00:0016:30:00
*/
go
--> -->
if not object_id(N'Tempdb..#Tab') is null
drop table #Tab
Go
Create table #Tab([ID] int,[Name] nvarchar(2),[Logtime] Datetime,[action] nvarchar(2))
Insert #Tab
select 1,N'张三','2011-08-24 08:00',N'登录' union all
select 2,N'张三','2011-08-24 08:31',N'登录' union all
select 3,N'张三','2011-08-24 09:20',N'离开' union all
select 4,N'张三','2011-08-24 09:29',N'登录' union all
select 5,N'张三','2011-08-24 13:50',N'离开' union all
select 6,N'张三','2011-08-24 14:20',N'登录' union all
select 7,N'张三','2011-08-24 15:20',N'登录' union all
select 8,N'张三','2011-08-24 16:30',N'离开' union all
select 9,N'张三','2011-08-24 08:00',N'登录' union all
select 10,N'陶明','2011-08-24 07:31',N'登录' union all
select 11,N'陶明','2011-08-24 08:20',N'离开' union all
select 12,N'陶明','2011-08-24 09:50',N'登录' union all
select 13,N'陶明','2011-08-24 15:50',N'离开' union all
select 14,N'陶明','2011-08-24 16:10',N'离开' union all
select 15,N'陶明','2011-08-24 16:42',N'离开'
Go
Select
CONVERT(VARCHAR(8),[Logtime],112) AS 日期,
[Name] AS 姓名,
min(CASE WHEN [action]=N'登录' THEN convert(varchar(8),[Logtime],8) END) AS 最早上班时间,
max(CASE WHEN [action]=N'离开' THEN convert(varchar(8),[Logtime],8) END) AS 最晚下班时间
from #Tab
WHERE CONVERT(VARCHAR(8),[Logtime],112)='20110824'
GROUP BY CONVERT(VARCHAR(8),[Logtime],112),[Name]
/*
日期姓名最早上班时间最晚下班时间
20110824陶明07:31:0016:42:00
20110824张三08:00:0016:30:00
*/
求一个sql 语句得出所有人在某一天的最早上班时间和最晚下班时间
求英文翻译英文翻译 我们公司上下班时间由系统设定最早上班时间为7:30,最晚下班时间17:30. 如果你早于7:30到公
EXCEL中,统计一个部门员工的平均上班时间.如果上班时间为A1,下班时间为B1,我用的公式为=(B1-A1)*24,但
地方时最早和最晚的大洲
中国太阳最早出现的地方和日落最晚的地方在哪啊?
一个sql判断语句的写法
求SQL查询语句的编写?
求:Excel 公式 比如:A某 上班时间:2013.04.20 08:30 下班时间2013.04.21 02:30
SQL语句的where
一个有关SQL语句的问题,求高手帮忙解决一下
数据库中抽取字段的英文和数字 求sql语句
SQL使用while 语句求1到100之间的累加和并输出