0

テーブルを更新するのに問題があり、ここの誰かが私を助けてくれることを願っています. 私は SQL を学習しているだけなので、特定のプロセスを実行する最善の方法がわかりません。テーブルの 1 つに、どうにかしておかしくなった値があります。ここで、元の値から別のテーブルの値の合計を引いたものを使用して更新する必要があります。

表 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 を実行しています。

4

0 に答える 0