该字段取决于其他表的条件的更新

时间:2019-01-26 15:22:31

标签: sql oracle

请帮助解决以下问题,当我在公司的ERP中进行销售时,它会在表sale_line中生成销售记录,并在表stock_move中生成物流。我想更新表stock_move中的一列。

我有:

sale_line

id | description | quantity | state | type
15 | producto1   |    12    | done  | goods

stock_move

id | description | quantity | shipment      |  state
20 |  producto1  |     12   | sale line,15  |  done
21 |  producto1  |     12   |               |  draft

当表stock_movestate时,我需要更新表sale_line.state = 'done'的列sale_line.type = 'goods'

stock_move

id | description | quantity | shipment      |  state
20 |  producto1  |     12   | sale line,15  |  done
21 |  producto1  |     12   |               |  done

1 个答案:

答案 0 :(得分:0)

我想您正在寻找类似的东西

update sale_move
set 
  "state" = 'done'
where exists (
  select 1 from sale_line 
  where
    sale_line."id" = regexp_substr("shipment", '[^,]+$') and
    sale_line."state" = 'done' and
    sale_line."type" = 'goods'
)