0

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_timestampactivityactivity.caseid=tbl_metrics.caseidactivity.entry_timestamp>tbl_metrics.act_start_timeactivity.act_id

4

1 に答える 1