0
次のクエリを記述すると、エラーが無効になります。B.WO_NO。 WHERE句を指定せずにクエリを記述すると、work_order_coding_tabのすべての金額が更新されます。しかし、私はテーブルのすべてのデータを更新する必要はありません。しかし、代わりに、私は行だけを選択して更新する必要があります。私が試してみたいことについての提案。指定されたクエリの更新中のエラー
がUPDATE work_order_coding_tab A
SET A.amount = (SELECT B.sales_price_amount
FROM work_order_coding B
WHERE
A.WO_NO = B.WO_NO AND
A.ROW_NO = B.ROW_NO AND
B.work_order_cost_type_db = 'M' AND
B.order_no IS NULL AND
B.catalog_no IS NOT NULL AND
A.amount IS NOT NULL AND
A.amount <> B.sales_price_amount AND
B.contract LIKE 'TZ%' AND
abc.active_separate_api.get_line_no(B.wo_no) = 2)
別名
B
が存在していないため、エラーが起きている
が利用できない:私はあなたも、すなわちこれだけを使用し、現在の外側WHERE
句を必要としないと思う
UPDATE work_order_coding_tab A
A.amount = (SELECT B.sales_price_amount
FROM work_order_coding B
WHERE A.WO_NO = B.WO_NO AND
A.ROW_NO=B.ROW_NO
AND B.work_order_cost_type_db = 'M'
AND B.order_no IS NULL
AND B.catalog_no IS NOT NULL
AND A.amount is not null and A.amount <> B.sales_price_amount and B.contract like 'TZ%'
and abc.active_separate_api.get_line_no(B.wo_no) =2)
WHERE A.WO_NO = B.WO_NO AND
A.ROW_NO=B.ROW_NO
お返事ありがとうございます。はい、私はwork_order_coding_tabの特定のレコードを更新する必要があります。 work_order_codingビューには、WO_NOとROW_NOがあります。私はそれらの値を取って、WO_NOとROW_NOに等しいwork_order_coding_tabのレコードだけを更新する必要があります。これらのWO_NOとROW_NOは、上記のように書かれたselectから取られます。 (内部クエリ)。どのように私はそれを行うことができます任意の提案? – user3789200
@ user3789200 - 'work_order_coding_tab a'の' A.WO_NOとA.ROW_NO'を持つすべての行について、 'B.sales_price_amount'が' work_order_coding Bのレコードから取られているので、更新は成功します'は、' work_order_coding_tab a'の正確な 'A.WO_NOとA.ROW_NO'に対応しています。あなたは安全です。 – g00dy
ああ。選択クエリには12行しか選択されていません。しかし、この更新では、work_order_coding_tab内の行の数である540が更新されると言われている。これは、このメッセージが現れても、work_order_coding_tabで12レコードだけが更新されることを意味しますか?どこの条件が利用可能でないときは、どのようにして正確な行を選択しますか?無知をおかけして申し訳ありません – user3789200