Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 server 2008 用于多个日期的microsoft sql server datediff_Sql Server 2008 - Fatal编程技术网

Sql server 2008 用于多个日期的microsoft sql server datediff

Sql server 2008 用于多个日期的microsoft sql server datediff,sql-server-2008,Sql Server 2008,我需要根据唯一ID查找两个日期(日期时间类型)之间的时间长度。例如,我有以下数据: ID CallID Starttime 1 56 2011-01-04 10:00:00.000 1 67 2011-

我需要根据唯一ID查找两个日期(日期时间类型)之间的时间长度。例如,我有以下数据:

ID                 CallID                         Starttime                   
1                  56                             2011-01-04 10:00:00.000
1                  67                             2011-03-20 12:20:00.000
1                  70                             2011-04-08 15:00:00.000
2                  57                             2011-01-14 11:00:00.000
2                  62                             2011-02-14 11:00:00.000
2                  64                             2011-02-15 11:00:00.000
2                  75                             2011-04-14 11:00:00.000
2                  78                             2011-05-14 11:00:00.000
我需要根据以前的通话日期(开始时间)找到每个ID的所有CallID的时间长度。例如,我需要ID为1的所有呼叫的时间长度(CallID 67-CallID 56和CallID 70-CallID 67,等等)

我知道我需要某种类型的循环,通过ID查找该ID的CALID,但我是否还需要一个临时表来组织CALID

如有任何建议,将不胜感激。多谢各位

单向

;WITH T
     AS (SELECT ID,
                CallID,
                Starttime,
                ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Starttime) RN
         FROM   YourTable)
SELECT t1.ID,
       t1.CallID,
       t2.CallID,
       DATEDIFF(HOUR, t1.Starttime, t2.Starttime)
FROM   T t1
       INNER JOIN T t2
         ON t1.RN = t2.RN - 1
            AND t1.ID = t2.ID  

您能以表格格式为ID 1和2提供所需的输出吗?这看起来很棒,尽管出于某种原因我无法运行它(仍在学习!)。。。我将继续尝试运行它并检查这个答案。也谢谢你为我编辑!我终于成功了,它很漂亮。非常感谢你!