前提・実現したいこと
OracleのUpdateにおいて、
3つのテーブルを結合した結果をもとに複数の項目を条件に、1つのテーブルの更新を行いたい。
内容
1.3つのテーブルを結合したSelect結果
2.「1.」の結果のもと、複数の項目条件でテーブルの1つの項目すべてを一括更新したい
質問
「内容2.」を実現できるUpdate文についてご教授をお願いいたします。
Select文の抽出結果から4つの項目条件をもとに
Cテーブルの対象レコードすべてを更新したい
いくつか調べた結果近しい
SQL文(2つまでのテーブルを結合したパターン、Select条件結果が1項目までなど)
を見つけることができましたが、実現したいSQLを作成するに至れませんでした。
該当のソースコード
Oracle
1テーブル(3つ) 2 3Table A 4 バッチ番号, バッチ・タイプ 5Table B 6 バッチ番号, バッチ・タイプ, 伝票番号, 伝票会社 ,転記コード 7Table C 8 バッチ番号, バッチ・タイプ, 伝票番号, 伝票会社 ,転記コード 9 10補足: 11Table BとTable Cそれぞれの転記コードが異なっており、それらを統一したいため。 12 13Select 14 DISTINCT C.伝票番号, 15 C.伝票タイプ, 16 C.伝票会社, 17 C.転記コード 18From 19 A 20inner join B on( 21 B.バッチ番号 = A.バッチ番号 22 and 23 B.バッチ・タイプ = A.バッチ・タイプ 24 ) 25inner join C on( 26 B.伝票番号 = C.伝票番号 27 and 28 B.伝票会社 = C.伝票会社 29 ) 30where 31 A.バッチ・タイプ = 'A' 32and 33 A.バッチ状況 = 'B' 34and 35 B.転記コード = 'C' 36and 37 C.転記コード = 'D'
試したこと
selectの結果4項目の条件をもとにテーブルCの対象すべてのC.転記コードを更新したい
Update条件:
Select結果の、C.伝票番号, C.伝票タイプ, C.伝票会社, C.転記コード = 'D'に合致した
対象レコードすべてのC.転記コードを'Z'に更新したい。
Update C
Set C.転記コード = 'Z'
from
(
select文?(不明)
)
where文?(不明)
補足情報(FW/ツールのバージョンなど)
なし

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/16 06:02