私は2つのテーブルを持っています:テーブルA ID Field1 ....
テーブル B ID フィールド 2 フィールド 3 ...
テーブル B をループして、同じ ID を持つレコードがテーブル A に存在する場合は、値 Field2 と Field3 をテーブル A に追加します。
T-SQL での操作方法がわかりません。
私は2つのテーブルを持っています:テーブルA ID Field1 ....
テーブル B ID フィールド 2 フィールド 3 ...
テーブル B をループして、同じ ID を持つレコードがテーブル A に存在する場合は、値 Field2 と Field3 をテーブル A に追加します。
T-SQL での操作方法がわかりません。
今回のアップデートでは、ループ構造を使用する必要はありません。集合演算を使用すると、より適切な方法で解決できます。質問を正しく理解している場合は、テーブル B の値でテーブル Aを更新したいと考えています。次のようなクエリを使用します。
UPDATE TableA
SET TableA.Field2 = TableB.Field2, TableA.Field3 = TableB.Field3
FROM TableB
WHERE TableA.ID = TableB.ID
テーブル A のフィールド 2 と 3 の値を置換する前に確認するために、このクエリで追加のチェックを行うことができます。
(最初にこのクエリの結果がどうなるかをテストするには、上記の UPDATE クエリから SELECT クエリを作成してください!)
SELECT CASE
WHEN TableA.ID IS NULL THEN TableB.Field2
ELSE TableB.Field3
END as FieldX
FROM TableB LEFT OUTER JOIN TableA
ON TableA.ID = TableB.ID
おそらく、次のように簡単に実行できます。
select tab2.id, (tab2.field2 + tab2.field3) as sumfield
from tab2 join tab1 on tab2.id = tab1.id
また
select tab2.id, (tab2.field2 + tab2.field3) as sumfield
from tab2
join
(select distinct id from tab1) tab1
on tab2.id = tab1.id