2015-07-10 61 views
3

的乘法我有SQL表的這種結構設定一個行字段爲2人

Id A  B C D 
1  1  5 6 25 
2  2  10 5 25 
3  3  7 4 25 
4  1  6 5 26 
5  2  10 5 26 
6  3  8 3 26 

我想編寫一個腳本,將更新所有乙& C柱在行與A = 3A = 1的乘法和A = 2的值(d列的相同值)

所以結果應該是

 
Id A  B C D 
1  1  5 6 25 
2  2  10 5 25 
3  3  50 30 25 
4  1  6 5 26 
5  2  10 5 26 
6  3  60 25 26 

如何在SQL中編寫這樣的代碼?

+0

將A的值永遠是1,2,3? –

+0

是的,它們可以是1,2,3,4和5.但腳本只應更改值爲3的行。 – Gab

+0

並將它們設置爲Row1值* Row2值 – Gab

回答

7

一種可能的方式是加盟表格本身兩次:

update T3 
set 
    T3.B = T1.B * T2.B, 
    T3.C = T1.C * T2.C 
from [Table] T3 
    join [Table] T1 on T1.A = 1 and T1.D = T3.D 
    join [Table] T2 on T2.A = 2 and T2.D = T3.D 
where 
    T3.A = 3 
相關問題