1

我有如下表格:

    GroupOrderID    Station           Date
-----------------------------------------------
    28797   NB003   2013-01-03 12:53:00
    28797   NB003   2013-01-03 17:12:00
    28797   NB003   2013-01-04 14:45:00
    28797   NB003   2013-01-04 15:57:00
    28797   NB003   2013-01-06 16:08:00
    28797   NB003   2013-01-07 10:28:00
    28797   NB003   2013-01-07 10:29:00
    28797   CRM220  2013-01-07 16:31:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:04:00
    28797   CRM220  2013-01-07 17:24:00
    28797   CRM220  2013-01-07 17:24:00
    28797   STEENOVE    2013-01-11 11:03:00

我想要每行的两个日期之间的时间差(以秒为单位)。对于每个站点,

但是 MAX SECONDS BREAK 条件是有条件的。就像,在计算 Station CRM220 First 和 Last datetime 的秒数时,我们不会计算秒数 > MAX SECONDS BREAK 的时间。

因此,我们将计算站的第一次和最后一次测量之间的所有秒数,并排除 Max Break 中提到的秒数时间间隔。像 Station NB003 一样,CRM220 都有第一个和最后一个日期,我想要以秒为单位的差异。

4

1 回答 1

0

此 tsql 将在第二个为您提供差异。**

with cte as
(SELECT
   ROW_NUMBER() OVER (PARTITION BY GroupOrderID    , Station ORDER BY CDate) row,
  GroupOrderID    , Station, CDate
 FROM #supportContacts)
SELECT 
   a.GroupOrderID    , a.Station ,
   DATEDIFF ( second , b.CDate , a.CDate) as 'DiffinSec'
FROM
   cte a
   LEFT  JOIN cte b
   on a.GroupOrderID = b.GroupOrderID
   and a.Station = b.Station
    and a.row = b.row+1

结果

结果

于 2013-01-11T21:42:47.803 回答