假设我有一张表其中有三个字段1,2,3(1为数据,2为数据出去的时间,3为数据回来的时间)
其中1中的字段可以是相同的
举个例子来说:
1 2 3
10001 10:10 10:20
10001 10:25 11:25
10001 10:45 12:00
x
.................
现在要求展示的是
1 4 5 6 7 8 9 其中(4.5.6.7.8.9)都是没有的字段,4是1中x出去最早的时间;
5是x回来最早的时间;6是x出去最迟的时间;7是x回来最迟的时间;8是4和5之间的时间差以分钟记;
9是6和7之间的时间差以分钟记;
如
1 4 5 6 7 8 9
10001 10:10 10:20 10:45 12:00 10 75
可以再建张临时表存放这些记录
现在我该怎么把这些数据取出来呢?~~~~
求教中!~~~~
其中1中的字段可以是相同的
举个例子来说:
1 2 3
10001 10:10 10:20
10001 10:25 11:25
10001 10:45 12:00
x
.................
现在要求展示的是
1 4 5 6 7 8 9 其中(4.5.6.7.8.9)都是没有的字段,4是1中x出去最早的时间;
5是x回来最早的时间;6是x出去最迟的时间;7是x回来最迟的时间;8是4和5之间的时间差以分钟记;
9是6和7之间的时间差以分钟记;
如
1 4 5 6 7 8 9
10001 10:10 10:20 10:45 12:00 10 75
可以再建张临时表存放这些记录
现在我该怎么把这些数据取出来呢?~~~~
求教中!~~~~
declare @T table ([1] int,[2] varchar(10),[3] varchar(10))
insert into @T
select 10001,'10:10','10:20' union all
select 10001,'10:25','11:25' union all
select 10001,'10:45','12:00'select * from @T
--Code
select [1],
[4]=MIN([2]),
[5]=MIN([3]),
[6]=Max([2]),
[7]=Max([3]),
[8]=DATEDIFF(mi,MIN([2]),MIN([3])),
[9]=DATEDIFF(mi,max([2]),max([3]))
from @T group by [1]--Result
/*
1 4 5 6 7 8 9
----------- ---------- ---------- ---------- ---------- ----------- -----------
10001 10:10 10:20 10:45 12:00 10 75
*/
select col1,min(col2) col4,min(col3) col5,max(col2) col6,max(col3) col7
datediff(n,cast(min(col2) as datetime),cast(min(col3) as datetime)) col8,
datediff(n,cast(max(col2) as datetime),cast(max(col3) as datetime)) col9
from tb group by col1
审核结束时间, 接收最后时间, number, DATEDIFF(n, 审核结束时间, 接收最后时间)
AS date1, DATEDIFF(n, 审核开始时间, 接收开始时间) AS date2
FROM (SELECT IMEDITAB.YDANCODE, DPTTAB.DPTNAME, IMEDITAB.DPTCODE,
IMEDITAB.I_E_DATE, MAX(IMEDITAB.ETRTM) AS 接收最后时间,
MAX(IMEDITAB.CMDTM) AS 审核结束时间, MIN(IMEDITAB.ETRTM)
AS 接收开始时间, MIN(IMEDITAB.CMDTM) AS 审核开始时间,
COUNT(IMEDITAB.YDANCODE) AS number
FROM IMEDITAB LEFT OUTER JOIN
DPTTAB ON IMEDITAB.DPTCODE = DPTTAB.DPTCODE
GROUP BY IMEDITAB.YDANCODE, IMEDITAB.DPTCODE, IMEDITAB.I_E_DATE,
DPTTAB.DPTNAME) DERIVEDTBL
ORDER BY I_E_DATE DESC
我做了两次查询,没有再建一张临时表!现在需要做的把两个时差,date1,date2给它格式化下,这样看起来更舒服,一眼就可以知道
是间隔了多少分钟多少小时,这个问题还要请教下大家!~~~