2014-05-15 116 views
0

例如一筆更新超過1列的一些值有一個表T與價值觀的來自同一列

col1 col2 col3 col4 col5 col6 
a x y z s0 s2 
b x y z s1 s3 
c x y z s4 s5 
a x1 y1 z1 s6 s7 
b x1 y1 z1 s8 s9 
c x1 y1 z1 s8 s9 

更新後,它應該看起來像

col1 col2 col3 col4 col5 col6 
a x y z s0 s2 
b x y z s1 s3 
c x y z s0+s1 s2+s3 
a x1 y1 z1 s6 s7 
b x1 y1 z1 s8 s9 
c x1 y1 z1 s8+s6 s9+s7 

回答

1

你是對用於轉換的規則有點模糊。下面可以做你想做的:

update t 
    set col5 = (select sum(col5) from t2 where t2.col2 = t.col2 and t2.col1 in ('A', 'B')), 
     col6 = (select sum(col6) from t2 where t2.col2 = t.col2 and t2.col1 in ('A', 'B')) 
    where col1 = 'C'; 
+0

感謝@Gordon Linoff但你知道是否有可能選擇2合併成1,因爲各方面條件都相同 – cur4so

+0

之外,看起來像它會工作到COL2(或任何其他匹配參數)不爲空 – cur4so