2017-02-03 28 views
-1

nullの場所でcol3にカラムAデータを挿入する方法を教えてください。テーブルcolumeデータを別のテーブルカラムに挿入する方法

添付を参照してください。これは可換合計と呼ばれる

col1 col2 col3 
5 7 7 
8 11 18 
3 6 24 
2 12 36 

同様

TABLE TAB1 
-------------- 
col1 col2 col3 
5 7 NULL 
8 11 NULL 
3 6 NULL 
2 12 NULL 

TABLE TAB2 
----------- 
ColA CoB 
7  5 
18  8 
24  3 
36  2 

欲望出力。

+0

順序を決定する列はありますか? – JohnHC

+0

使用しているSQLのバージョンは何ですか? –

+0

一致する列はありますか?レコード数は同じですか?一致する列がない場合、両方のテーブルのレコードの順序をどのように知っていますか?レコード数が一致せず、列の順序がない場合は、どの値がどこに行くかをどのように知っていますか? – Pred

答えて

0

これを試してみてください:

Update tab1 
set Col3=tab2.ColA 
from tab1 
inner join tab2 on tab1.col1=tab2.colB 
1

1.それは同じテーブルの作業です。 2 **

COL2 = COL3を設定する。** TAB1(COL1)に別のテーブルに

INSERTを1つのテーブル列のデータを挿入するため

更新TABLENAMEはTAB2

からCOL1を選択
0

私は、2番目の列の累積合計を求めるとします。

with toupdate as (
     select t1.*, 
      sum(t1.col2) over (order by ??) as cume_col2 
     from tab1 t1 
    ) 
update toupdate 
    set col3 = cume_col2; 

累積合計を行うには、合計の順序を指定する列が必要です。表示されているデータには適切な列がありません。

編集:

わかりました。順序は2番目の表から得られます。

with toupdate as (
     select t1.*, 
      sum(t1.col2) over (order by t2.cola) as cume_col2 
     from tab1 t1 join 
      tab2 t2 
      on t1.col1 = t2.colb 
    ) 
update tab1 
    set col3 = toupdate.cume_col2 
    from tab1 join 
     toupdate 
     on tab1.col1 = toupdate.col1; 
関連する問題