首页 > 解决方案 > 使用当前时间戳和新状态将新记录添加到我的表中

问题描述

我想将新记录添加到具有相同先前记录的表中,只需将时间戳修改为当前时间戳和新状态,我的表如下所示:

在此处输入图像描述

我的预期结果是:

在此处输入图像描述

任何想法如何,在此先感谢。

标签: sqloracle

解决方案


嗯。. . 如果你想给所有的“3”加上一个“4”,那么:

insert into t (doc_id, time_stamp, doc_num, doc_status, num_emp)
    select doc_id, sysdate, doc_num, 4, num_emp
    from t
    where doc_status = 3;

如果您想要每个的 一个,那么您需要获取最新的并添加 1:doc_statusdoc_id

insert into t (doc_id, time_stamp, doc_num, doc_status, num_emp)
    select doc_id, sysdate, doc_num, doc_status + 1, num_emp
    from (select t.*,
                 row_number() over (partition by doc_id order by time_stamp desc) as seqnum
          from t
         ) t
    where seqnum = 1;

推荐阅读