如何使用Apex Oracle SQL中另一个表的行值更新表的行值?

如何使用Apex Oracle SQL中另一个表的行值更新表的行值?,sql,database,oracle,oracle-apex,Sql,Database,Oracle,Oracle Apex,我有一个带有数量变量的批量库存表。我还有一个名为purchase order的表的数量变量。当用户发出采购订单时,我希望在批量库存表中删除他们在采购订单表中插入的数量。我正在使用一个名为Apex的SQL oracle软件进行此操作。我正在努力学习SQL语法,我相信: Error: ORA-01747: invalid user.table.column, table.column, or column specification 这是我的密码 UPDATE Bulk_stock SET

我有一个带有数量变量的批量库存表。我还有一个名为purchase order的表的数量变量。当用户发出采购订单时,我希望在批量库存表中删除他们在采购订单表中插入的数量。我正在使用一个名为Apex的SQL oracle软件进行此操作。我正在努力学习SQL语法,我相信:

Error: ORA-01747: invalid user.table.column, table.column, or column specification
这是我的密码

UPDATE Bulk_stock
   SET Bulk_stock.bulk_quantity = Bulk_stock.bulk_quantity - purchase_order.order_quantity,

 WHERE EXISTS
      (SELECT 1
         FROM purchase_order
        WHERE Bulk_stock.stock_id = purchase_order.stock_id);

采购订单.订单数量
后有一个额外的逗号。此外,在更新声明中,您参考了
采购订单.订单数量
,这是不正确的,因为更新发生在
批量库存
表上

你能试试这个吗

UPDATE Bulk_stock
   SET Bulk_stock.bulk_quantity = Bulk_stock.bulk_quantity - nvl( SELECT purchase_order.order_quantity
         FROM purchase_order
        WHERE purchase_order.stock_id = Bulk_stock.stock_id WHERE ROWNUM=1), 0) WHERE EXISTS
  (SELECT 1
     FROM purchase_order
    WHERE Bulk_stock.stock_id = purchase_order.stock_id);

这将始终更新批量库存中的所有行,对吗?是的。但更新后,如果没有其他值更改为反映订购数量的值,则结果是批量数量将保持不变。是,我的观点是,如果表中有数百万行,这可能是一个昂贵的操作。修改查询以防止在库存中没有订单的情况下进行更新。这可能仍然不是OP所追求的,因为它会不断减少先前已处理的订单数量,在每次更新期间。能否将当前采购订单id的值作为绑定变量传递到查询中?其余的代码是什么样子的?插入是使用oracle apex表单自动完成的。这是我想在根据上面的图片完成插入后,作为一个进程放在页面上的代码。没有额外的代码是否允许您在数据库中创建
触发器
,以封装此业务逻辑?是的,我被允许。我试图创建一个触发器,但apex总是抱怨语法。如果你能帮我开始结束;这种更新的语法正确。我的答案对你有用吗?