[英]ORA-01427: single-row subquery returns more than one row in Update Statement
[英]“Single-row subquery returns more than one row” in Update statement
我已经努力了几天,以研究如何使我的update
语句正常工作。 select
语句似乎按预期工作,但是当我尝试更新列值时,出现ORA-01427 single-row subquery returns more than one row
错误。
这是代码:
UPDATE tbl_metrics
SET act_end_time = (WITH base
AS (SELECT caseid, entry_timestamp
FROM activity
WHERE act_id IN (100, 700, 300)
)
SELECT t1.entry_timestamp
FROM base t1, tbl_metrics t2
WHERE t1.caseid = t2.caseid
AND t2.act_start_time < (SELECT MIN(t1.entry_timestamp) FROM base t1 WHERE t1.caseid = t2.caseid))
这个想法是用activity
表中的最低entry_timestamp
值更新tbl_metrics.act_end_time
列,其中activity.caseid=tbl_metrics.caseid
和activity.entry_timestamp>tbl_metrics.act_start_time
且activity.act_id
为activity.entry_timestamp>tbl_metrics.act_start_time
或300。
我认为应该是这样的:
UPDATE tbl_metrics t2
SET act_end_time =
(SELECT MIN(t1.entry_timestamp)
FROM activity t1
WHERE act_id IN (100, 700, 300)
AND t1.entry_timestamp > t2.act_start_time
AND t1.caseid = t2.caseid)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.