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