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
で列が更新され、とが100、700、または 300 であるということです。entry_timestamp
activity
activity.caseid=tbl_metrics.caseid
activity.entry_timestamp>tbl_metrics.act_start_time
activity.act_id