UPDATE SELECT は 無かった

以下、記憶がかなりあいまい。
SQL SERVER のUPDATE文で設定する値にSELECT文が使えるけど、SETに計算式は使えないらしい。
しかしMSDNを見ると・・・
expressionはあちこちに書いてあるけど、SELECTなんて書いてなかった。 orz
ま、ゴチャゴチャに補正値が入っているテーブルから系統ごとに補正値をまとめて加算するんだけど
データが多すぎるから、SQLでパパッとやってみたかった!だけなんだけどね。(笑
UPDATE   更新テーブル
SET    系統計1フィールド1 += WHEN CASE 集計キー = 1 THEN 計算式1 ELSE 0 END
,系統計2フィールド1 += WHEN CASE 集計キー = 2 THEN 計算式2 ELSE 0 END
FROM    更新テーブル INNER JOIN
(SELECT 補正値テーブル名.キー,集計式 FROM 補正値テーブル名
GROUP BY 補正値テーブル名.集計キー・・・)   補正値 ON  更新テーブル.キー=補正値.キー
WHERE 更新テーブル.対象時刻=XXXXX
のように書けば、計算式1で
SUM(補正値.フィールド1名)  –  SUM(補正値.フィールド2名)
も使えるのかもしれない。
でも、素直にカーソル使ってループした方がマシかな?(笑
※まだ調査中。
 




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA