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

时间:2015-01-29 19:42:40

标签: sql pervasive pervasive-sql

我在更新桌子时遇到问题,希望有人可以帮助我。我只是在学习SQL,所以我不确定执行某些过程的最佳方法。我的一张桌子里有一个价值,不知怎的。现在,我需要使用原始值减去不同表中的值之和来更新它。

表1是ORDER_LINES。

ORDER_NO QTY_ON_ORD ORIG_ORD_QTY
0900476          10          100

表2为INVOICED_LINES。

INV_NO SHIP_QTY ORIG_ORD_NO
000441       20     0900476
000441       25     0900476
000441       15     0900476
000441       10     0900476

ORDER_LINES.QTY_ON_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

因此,ORDER_LINES.QTY_ON_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';

但这不起作用。选择自己在我的查询中打印出正确的数量,但我似乎无法在我的更新中使用该数量。

如果有任何不同,我们正在运行Pervasive SQL。

0 个答案:

没有答案