Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何根据oracle中另一个表中的值更新一个表中的字段_Sql_Oracle - Fatal编程技术网

Sql 如何根据oracle中另一个表中的值更新一个表中的字段

Sql 如何根据oracle中另一个表中的值更新一个表中的字段,sql,oracle,Sql,Oracle,在Oracle中,我试图根据第二个表中字段的计算结果更新一个表中的字段,但似乎无法使用任何语法 比如说, Update item1 i1, item2 i2 Set i1.min_qty = i2.cases * i2.qty_per_case Where i1.item_id = i2.item_id And i1.flag1 = 'Y' i1.item_id和i2.item_id之间的关系是一对一的 非常感谢您的帮助。您需要使用相关子查询或合并语句: update item1 i1 set

在Oracle中,我试图根据第二个表中字段的计算结果更新一个表中的字段,但似乎无法使用任何语法

比如说,

Update item1 i1, item2 i2
Set i1.min_qty = i2.cases * i2.qty_per_case
Where i1.item_id = i2.item_id
And i1.flag1 = 'Y'
i1.item_id
i2.item_id
之间的关系是一对一的


非常感谢您的帮助。

您需要使用相关子查询或合并语句:

update item1 i1
set    i1.min_qty = (select i2.cases * i2.qty_per_case
                     from   item2 i2
                     where  i1.item_id = i2.item_id)
where  i1.flag1 = 'Y';

merge into item1 tgt
using item2 src
  on (tgt.item_id = src.item_id)
when matched then
update set tgt.min_qty = src.cases * src.qty_per_case
where  tgt.flag1 = 'Y';
注意:未经测试。

今天的问题本身也是类似的