SQL-如何将记录中的字段更新为两个表中的合计值

SQL-如何将记录中的字段更新为两个表中的合计值,sql,pervasive,pervasive-sql,Sql,Pervasive,Pervasive Sql,我在更新表格时遇到了问题,我希望这里的人能帮我解决。我只是在学习SQL,所以我不确定执行某些流程的最佳方法。我的一张表中有一个值,不知怎么搞得不正常。现在,我需要使用原始值减去另一个表中的值之和来更新它 表1为订单行 ORDER_NO QTY_ON_ORD ORIG_ORD_QTY 0900476 10 100 表2为发票行 INV_NO SHIP_QTY ORIG_ORD_NO 000441 20 0900476 000441

我在更新表格时遇到了问题,我希望这里的人能帮我解决。我只是在学习SQL,所以我不确定执行某些流程的最佳方法。我的一张表中有一个值,不知怎么搞得不正常。现在,我需要使用原始值减去另一个表中的值之和来更新它

表1为订单行

ORDER_NO QTY_ON_ORD ORIG_ORD_QTY
0900476          10          100
表2为发票行

INV_NO SHIP_QTY ORIG_ORD_NO
000441       20     0900476
000441       25     0900476
000441       15     0900476
000441       10     0900476
ORD上订单行数量的值应为:

ORDER_LINES.QTY_ON_ORD =
ORDER_LINES.ORIG_ORD_QTY - SUM(INVOICED_LINES.SHIP_QTY) 
WHERE INVOICED_LINES.ORIG_ORD_NO = ORDER_LINES.ORDER_NO
因此,ORD上订单行数量的值不正确。其中的值不断变化,因此我希望有一个SQL命令,可以运行它来动态更新这些值。我试过很多方法,比如:

UPDATE "ORDER_LINES"
SET QTY_ON_ORD = SELECT (
  (SELECT SUM(ORIG_ORD_QTY) FROM "ORDER_LINES" WHERE ORDER_NO = '0900476') - 
  (SELECT SUM(SHIP_QTY) FROM "INVOICED_LINES" WHERE ORIG_ORD_NO = '0900476')
)
WHERE ORDER_NO = '0900476';
但这不起作用。Selects在我的查询中自己打印出正确的数量,但我似乎无法在更新中使用该数量


如果有什么不同,我们正在运行普适SQL。

您可以使用合并或从JoinUpdate更新。您的查询如何不起作用?