我有一个像
这样的主表========================================
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。 计算完所有行后,退出循环。
任何人都可以给我一个查询吗?
答案 0 :(得分:0)
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