Sql 需要查询-带循环的行计数

Sql 需要查询-带循环的行计数,sql,sql-server,tsql,date,Sql,Sql Server,Tsql,Date,我有一个像这样的主表 ======================================== ID NAME logtime (date time colum) ======================================== 1 cat dd/mm/yyyy 10.30 2 cat dd/mm/yyyy 9.20 3 cat dd/mm/yyyy 9.30 4 cat dd/mm/yyyy 7.

我有一个像这样的主表

========================================
ID    NAME    logtime (date time colum) 
========================================
1     cat     dd/mm/yyyy 10.30

2     cat   dd/mm/yyyy 9.20

3     cat    dd/mm/yyyy 9.30

4     cat   dd/mm/yyyy 7.20
次表状

---------------------
Name     improvement
---------------------
cat       1
现在我想创建一个循环

要计算前两行之间的差异,如果差异>=1小时,则将辅助表更新为现有值+1(即2),否则将其保留

现在计算第2行和第3行, 要计算前两行之间的差异,如果差异>=1小时,则将辅助表更新为现有值+1,这里的答案是2

然后是3号和4号。 计算完所有行后,退出循环

有人能问我这个问题吗

declare@timediff表(id int-identity(1,1),Name varchar(50),logtime-datetime)
    declare @timediff table(id int identity(1,1),Name varchar(50),logtime datetime)
    insert into @timediff Select Name,logtime from timediff

   declare @datetimeDiff int
   declare @i int=1
   while(@i<=(Select count(*) from @timediff))
     Begin
         Select @datetimeDiff=datediff(hour,logtime,
         (Select logtime from  @timediff where id=@i+1)) 
         from @timediff  where id=@i
         if(@datetimeDiff>=1)
         BEGIN
         Select @datetimeDiff
         --You can write your update code here

        END


        Set @i=@i+2
      END
在@timediff中插入选择名称,从timediff中选择logtime 声明@datetimeDiff int 声明@i int=1 而(@i=1) 开始 选择@datetimeDiff --您可以在这里编写更新代码 终止 设置@i=@i+2 终止
这不是代码编写服务。您应该编辑您的问题,以显示您尝试了什么以及您坚持了什么。此外,您使用的是什么版本的sql server?sql server 2014