çæ ·ååsqlserverï¼å°±æsqlserverçåäº
å建æµè¯è¡¨ï¼æ°æ®ï¼
create table test
(requestid int,
logid int,
operatedate varchar(10),
operatetime varchar(10),
operator int);
insert into test values (502,1372,'2018-06-13','16:16:03',155);
insert into test values (502,1446,'2018-06-14','09:00:32',153);
insert into test values (502,1472,'2018-06-14','09:33:07',157);
insert into test values (502,1474,'2018-06-14','09:35:11',151);
insert into test values (502,1657,'2018-06-14','15:17:10',153);
insert into test values (502,1660,'2018-06-14','15:18:17',155);
insert into test values (502,1661,'2018-06-14','15:19:01',153);
insert into test values (502,1662,'2018-06-14','15:19:48',157);
insert into test values (502,1677,'2018-06-14','15:31:34',151);
insert into test values (502,1694,'2018-06-14','16:42:51',12);
insert into test values (502,1709,'2018-06-14','18:08:45',9);
insert into test values (502,1730,'2018-06-15','08:09:14',158);
insert into test values (502,1732,'2018-06-15','08:09:16',157);
æ§è¡ï¼
with t as
(select test.*,row_number() over (partition by requestid order by logid) rn from test)
select t1.requestid,t1.logid,cast(t1.operatedate+' '+t1.operatetime as datetime) begintime,cast(t2.operatedate+' '+t2.operatetime as datetime) endtime,t1.operator from t t1 left join t t2 on t1.requestid=t2.requestid and t1.rn=t2.rn+1
æ¥è¯¢ç»æï¼
æåæ¶é´æ²¡æä½ é£ç§æ¹å¼æ¾ç¤ºï¼ä½ é£ç§å°æ¶åç®æä½æ¶é´ä¹éº»ç¦ï¼è¿ä¸å¦æ¹ææ¶é´æ¥æç±»åäºã