我的表格如下:
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第一个和最后一个日期时间的秒数期间,我们将不计算具有秒数的时间> MAX SECONDS BREAK。
因此,我们将计算电台的第一次和最后一次测量之间的所有秒数,并排除Max Break中提到的时间间隔秒。 与Station NB003一样,CRM220每个都有第一个和最后一个日期,我希望在几秒钟内有所不同。
答案 0 :(得分: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
结果