dポイントプレゼントキャンペーン実施中!

SQLのupdate文で質問です。

こんな感じに更新したいんですが、
行番号が1のときの数値を行番号2も同じにしたいんですが、ちなみちに品番ごとです。
データはW_iテーブルのデータをそのまま更新したいんですが、どのようにしたろうまく出来ますか。
update W_i set 値 = 数値 from W_i where 行番号 = '1'
こうすると行番号1しか変わらない

(初期)       
品番 数値 行番号
------------------
CZ 5 1
CZ 8 2
DF 6 1
DF 3 2



(更新後)
品番 数値 行番号
-----------------
CZ 5 1
CZ 5 2
DF 6 1
DF 6 2

A 回答 (1件)

違うレコードの内容で更新するためには、何らかの方法で2つのレコードを結合させる必要があります。


3通り書いておきますので、理解しやすそうなもので試してみてください。

update W_i
set 数値=b.数値
from W_i a
inner join (select * from W_i where 行番号=1) b on b.品番=a.品番
where a.行番号=2

update a
set 数値=b.数値
from W_i a
inner join W_i b on b.品番=a.品番 and b.行番号=1
where a.行番号=2

update W_i
set 数値=isnull((select 数値 from W_i where 品番=a.品番 and 行番号=1),a.数値)
from W_i a
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す