从表中的一列sql server生成日期差异


Shift    Time                    Action
TA      2021-03-17 10:39:11.613    OF
TA      2021-03-17 11:09:11.353    ON
TA      2021-03-17 13:49:20.760    OF
TA      2021-03-17 14:10:20.760    ON

嗨,我想知道你能不能帮我。我有一张输入和输出表。我记录它发生的时间和日期。但出于报告目的,我需要对该列进行日期差异处理。任何人都知道我如何生成查询以获得以下结果。

Shift    Time                    Action       Shift    Time                    Action
TA      2021-03-17 10:39:11.613    OF          TA       2021-03-17 11:09:11.353    ON
TA      2021-03-17 13:49:20.760    OF          TA       2021-03-17 14:10:20.760    ON

假设值正好交错,则可以使用lead(),然后过滤:

select *
from (select shift, time, action,
lead(time) over (partition by shift order by time) as next_time,
lead(action) over (partition by shift order by time) as next_action
from t
) t
where action = 'OF';

相关内容

最新更新