我一直在努力研究幾天,以瞭解如何使我的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))
的想法是,在tbl_metrics.act_end_time
列與最低entry_timestamp
值從activity
表,其中activity.caseid=tbl_metrics.caseid
和activity.entry_timestamp>tbl_metrics.act_start_time
和activity.act_id
是100,700,或300
可能要從哪裏開始在更新 – Patrick
@帕特里克你可以請更具體嗎?我一直在這個充滿了這麼久,我完全失去了。 – Slingy