同じテーブル内の別の行を参照して更新する方法(DBはオラクルです)UPした表(備考は説明用に記載したもので、テーブルには含まれません)から、以下を実現するにはどのようにしたらよいでしょうか?・正常ケース(No1とNo2の行)の場合、No1もNo2もassy合計には部品価格の合計額で更新する(No1もNo2のレコードも、部品価格3,000,000と部品価格2,000,000を加算して5,000,000で更新)・異常ケースのいずれかに該当(No3~No9の行全て)する場合、assy合計をー1(マイナスいち)で更新する正常ケースの定義は「部品番号と組み合わせ部品番号が1対1で紐づいている」です。UPした表は例ですが、実際のデータは10万件近いレコードです。考え方のヒントでも構いませんので、ご教示いただけると幸いです。

1件の回答

回答を書く

1283752

2026-02-17 00:45

+ フォロー

No1とNo2の合計は、5,500,000ですよね?

正常と異常のいずれかで、全行を更新するのですね?



UPDATE tbl1 x

SET assy合計=

COALESCE(

部品価格+

(

SELECT 部品価格 FROM tbl1

WHERE

部品番号\u0026lt;\u0026gt;x.部品番号

--

AND

部品番号\u0026lt;\u0026gt;組み合わせ部品番号

AND

x.部品番号\u0026lt;\u0026gt;x.組み合わせ部品番号

AND

-- 互いに紐づけ

x.部品番号=組み合わせ部品番号

AND

x.組み合わせ部品番号=部品番号

)

,-1);

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有