【发布时间】:2018-10-01 03:29:29
【问题描述】:
我正在尝试连续更新 2 列。应该更新的行是最旧的行duedate
table chorecompletion 描述为:
Name Null? Type
----------------------------------------- -------- ----------------------------
CHOREID NOT NULL NUMBER(38)
GROUPID NOT NULL NUMBER(38)
DUEDATE NOT NULL DATE
COMPLETEDDATE DATE
COMPLETEDBY NUMBER(38)
此查询返回我要更新的行
select *
from
(
select choreid, duedate, row_number()
over (partition by choreid order by duedate) as rn
from chorecompletion where choreid = 12 and groupid = 6
)
where rn = 1;
我需要帮助的地方是如何在我的更新语句中使用这个查询,特别是我的 where 子句
我目前的尝试:
update chorecompletion
set completeddate = sysdate, completedby=1
where --How to get the result of the previous query here?
对我的逻辑的任何帮助将不胜感激。
期望结果示例:
更新前:
CHOREID GROUPID DUEDATE COMPLETEDDATE COMPLETEDBY
-------------------------------------------------------------------
12 6 2018-11-1
12 6 2018-10-1
更新后
CHOREID GROUPID DUEDATE COMPLETEDDATE COMPLETEDBY
-------------------------------------------------------------------
12 6 2018-11-1
12 6 2018-10-1 2018-09-30 1
【问题讨论】: