select max(datediff(ss , m.eventtime , n.eventtime)) 秒 from
(select t.* , px = (select count(1) from tb where placename = '装车点' and eventtime < t.eventtime) + 1 from tb t where placename = '装车点') m,
(select t.* , px = (select count(1) from tb where placename = '卸车点' and eventtime < t.eventtime) + 1 from tb t where placename = '卸车点') n
where m.px = n.px

解决方案 »

  1.   

    create table tb(eventtime datetime, placename varchar(10))
    insert into tb values('2009-2-23 10:00:20' , '装车点') 
    insert into tb values('2009-2-23 10:10:20' , '装车点') 
    insert into tb values('2009-2-23 10:20:20' , '卸车点') 
    insert into tb values('2009-2-23 10:30:20' , '装车点') 
    insert into tb values('2009-2-23 10:40:20' , '卸车点') 
    insert into tb values('2009-2-23 10:50:20' , '装车点') 
    insert into tb values('2009-2-23 11:00:20' , '卸车点') 
    insert into tb values('2009-2-23 11:10:20' , '卸车点') 
    insert into tb values('2009-2-23 11:20:20' , '装车点') 
    insert into tb values('2009-2-23 11:30:20' , '卸车点') 
    insert into tb values('2009-2-23 11:40:20' , '装车点') 
    insert into tb values('2009-2-23 11:50:20' , '卸车点') 
    goselect max(datediff(ss , m.eventtime , n.eventtime)) 秒 from
    (select t.* , px = (select count(1) from tb where placename = '装车点' and eventtime < t.eventtime) + 1 from tb t where placename = '装车点') m,
    (select t.* , px = (select count(1) from tb where placename = '卸车点' and eventtime < t.eventtime) + 1 from tb t where placename = '卸车点') n
    where m.px = n.pxdrop table tb/*秒           
    ----------- 
    1800(所影响的行数为 1 行)
    */