使用列中的值标记前两行

时间:2017-04-05 10:33:34

标签: sql oracle

我有一个Oracle视图,其中包含员工的出勤记录,包括迟到的出勤日。

列:

  • 员工编号
  • 日期
  • 在时间
  • 停止时间
  • Late_Arrival(如果当前晚点被标记为1)

我想将每个员工的前两个月到来标记为查询中的“G”。

请帮助我。

示例数据如下链接tps://drive.google.com/open?id = 0B6Xw1eXeLyG7akZuTEdDUGNIUDg

1 个答案:

答案 0 :(得分:0)

这听起来像row_number()和某些日期算术:

select t.*,
       (case when late_arrival = 1 and
                  row_number() over (partition by trunc(date, 'MON'), late_arrival
                                     order by date, intime
                                    ) <= 2
             then 'G'
        end) as flag
from t;