さて、私はいくつかの Web 掘り下げを行いましたが、この状況を機能させる方法、または可能であるとしても見つけることができないようです。
私は SQL Server 2008 を使用しており、外国為替レートに関するいくつかの値を計算しようとしている計算列があります。
長期的には 1 つのテーブルの方が簡単かもしれませんが、2 つの異なるテーブルを使用する正しいソリューションを使用したいと考えています。
テーブルt1
には、トランザクションのログが格納されます。テーブルt2
には、特定の通貨の基本情報が格納されています。2 つのテーブルは、currencyCode
属性を使用して結合できます。
スティッキーな部分には、通貨に依存する計算が付属しています。現在、計算はCR1
CR2
CR3
またはのみ異なりますCR4
が、将来、より多くの通貨が追加されると、新しい通貨が異なる可能性があります。したがって、理想的には、新しい行が追加され、別の計算を使用するか使用しないかを指定t2
するビット フラグ ( ) が設定されます。flagCurrencyCalc
したがって、現在の式は次のようになります。
(case when [currencyCode]='CR1' OR [currencyCode]='CR2' OR [currencyCode]='CR3' OR [currencyCode]='CR4' then (formula1) else (formula2) end)
ご覧のとおり、新しい currencyCode を使用して別の OR ステートメントを追加することにより、手動で入力して形式を変更する必要があります。
次の行に沿って何かを行うことは可能でしょうか:
(case when t2.flagCurrencyCalc=True
t1 で見つかったレコードの特定の通貨コードthen (formula1) else (formula2) end)
???