次の CASE-WHEN ロジックを使用してテーブルを更新したいと考えています。
UPDATE table1
SET Volume_eur =
CASE
WHEN TradeCode = 'A' THEN PaymentAmount_field1
WHEN TradeCode = 'B' THEN PaymentAmount_field2
WHEN TradeCode = 'C' THEN PaymentAmount_field3
END
* CurrencyRate/100
FROM table1
しかし、どのロジックが使用されたかを文書化し、それを Statusfield にスタンプしたいと考えています。したがって、基本的には、次のように CASE-WHEN 文内で update-statement を実行したいと考えています: (太字でマーク)
UPDATE table1
SET Volume_eur =
CASE
WHEN TradeCode = 'A' THEN PaymentAmount_field1
UPDATE table1 SET StatusField = 'Logic1'
WHEN TradeCode = 'B' THEN PaymentAmount_field2
UPDATE table1 SET StatusField = 'Logic2'
WHEN TradeCode = 'C' THEN PaymentAmount_field3
UPDATE table1 SET StatusField = 'Logic3'
END
* CurrencyRate/100
FROM table1
それは可能ですか、それともどうすればいいですか?CASE-WHEN ロジック全体をコピーするのは避けたいと思います。これを維持するのが難しくなるからです。