谁给我写个sql语句:关于上一条记录和下一条记录的对比

比如下一条记录的时间字段与上一条记录的时间字段相差少于2分钟则给下一条记录时间字段添加2分钟。

select b.*,
(case when (b.s_time-a.s_time)*1440>2 then 2
else 0 end ) --下一条记录与上一条记录的时间差--分钟
from
(select a.*,
row_number() over(partition by servier_id order by service_id,s_time desc) roworder
from t1
) a,
(select a.*,
row_number() over(partition by servier_id order by service_id,s_time desc) roworder
from t1
) b
where a.servicer_id=b.service_id and b.roworder=a.roworder+1;

其中
t1表名
servier_id 是一个关键,比如一个员工的ID
s_time 记录时间
做两个子查询,对每一个员工的记录都按时间倒序排列
where条件把同一员工的前后两条记录关联起来。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答