我在更新表格时遇到问题,希望这里有人可以帮助我。我只是在学习 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';
但这不起作用。Selects 自己在我的查询中打印出正确的数量,但我似乎无法在更新中使用该数量。
如果这有什么不同,我们正在运行 Pervasive SQL。