Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取SQL中两个连续行的时差_Sql - Fatal编程技术网

获取SQL中两个连续行的时差

获取SQL中两个连续行的时差,sql,Sql,我使用以下查询获得如下所示的结果: SELECT calls.[Activity ID_18], calls.[Call SMS], calls.[Created By] PA_Name, calls.LOB, calls.Date, calls.StartDate Time_of_Call, calls.[Duration (min)] Duration, calls.[Call Connected?] 'Connected?'

我使用以下查询获得如下所示的结果:

SELECT
    calls.[Activity ID_18],
    calls.[Call SMS],
    calls.[Created By] PA_Name,
    calls.LOB,
    calls.Date,
    calls.StartDate Time_of_Call,
    calls.[Duration (min)] Duration,
    calls.[Call Connected?] 'Connected?'
FROM
    [dbo].[tblcallsnew] calls
WHERE
    CAST(calls.Date AS date) >= '3/15/2020' AND calls.LOB IN ('SO','EM')
ORDER BY
    PA_Name,CAST(calls.StartDate AS datetime2)
通过上面的查询,我得到以下结果:

Activity ID_18    Call SMS  PA_Name         LOB Date       Time_of_Call    Duration Connected?
00T2s000003U4uIEAS  Call    Aaron Fernandes EM  2020-03-16  2020-03-16 15:59:00 0.68    0
00T2s000003U4oMEAS  Call    Aaron Fernandes EM  2020-03-16  2020-03-16 16:02:00 0.07    0
00T2s000003U4z7EAC  Call    Aaron Fernandes EM  2020-03-16  2020-03-16 16:03:00 0.43    0
00T2s000003U59EEAS  Call    Aaron Fernandes EM  2020-03-16  2020-03-16 16:08:00 0.45    0
00T2s000003U517EAC  Call    Aaron Fernandes EM  2020-03-16  2020-03-16 16:10:00 3.37    1
00T2s000003U5MJEA0  Call    Aaron Fernandes EM  2020-03-16  2020-03-16 16:17:00 0.50    0
00T2s000003U5ApEAK  Call    Aaron Fernandes EM  2020-03-16  2020-03-16 16:18:00 0.08    0
我想要的是:我想要得到每个PA名称(代理)连续两次调用之间经过的时间。 这个想法是想知道一个代理在两次通话之间花费了多少时间

在此方面的任何帮助都将不胜感激。

您可以使用
lead()


用您正在使用的数据库标记您的问题。
select c.*,
       lead(startDate) over (partition by pa_name order by startDate) as next_startDate,
       datediff(minute, startDate,
                lead(startDate) over (partition by pa_name order by startDate)
               ) as minutes_between        
from [dbo].[tblcallsnew] c
where c.Date  >= '2020-03-15' and c.LOB in ('SO','EM')