SQLServer独自のUPDATE FROM
がまったくありません 構文を下げます。また、CommonField
に参加する必要がある理由もわかりません 後でそれをフィルタリングします。これを試してください:
UPDATE t1
SET t1.CalculatedColumn = t2.[Calculated Column]
FROM dbo.Table1 AS t1
INNER JOIN dbo.Table2 AS t2
ON t1.CommonField = t2.[Common Field]
WHERE t1.BatchNo = '110';
ある列の値を別の列の集計に常に設定しようとするなど、本当にばかげたことをしている場合(冗長データの格納を回避するという原則に違反します)、CTE(共通テーブル式)を使用できます-ここを参照してください詳細については、こちらをご覧ください:
;WITH t2 AS
(
SELECT [key], CalculatedColumn = SUM(some_column)
FROM dbo.table2
GROUP BY [key]
)
UPDATE t1
SET t1.CalculatedColumn = t2.CalculatedColumn
FROM dbo.table1 AS t1
INNER JOIN t2
ON t1.[key] = t2.[key];
これが本当にばかげている理由は、table2
の任意の行で毎回この更新全体を再実行する必要があるためです。 変更します。 SUM
これは実行時にいつでも計算できるものであり、そうすることで、結果が古くなることを心配する必要はありません。