SSブログ

CASE文でUNIONを回避する [SQL]

前置き

sql_case_pattern.png

その1

右上段の表は、左の表から売上日を見て税率を適用し税込価格を算出したもの。
2019-10-01から消費税が10%に切り替わるので、売上日がそれを超えたときに 10%の消費税を適用し、税込価格を算出する。切替日以前の税率は8%としている。

8%と10%で別表を抽出してから、UNIONする方法が思いつくが、テーブルを 2回読み込む必要があるためパフォーマンスが悪い。
今回の例の様に、プログラムでIF文が発生するような条件の場合は、 CASE文で解決することができる。

その2

右下段の表は、税込価格の合計を税率毎に算出したもの。
SUM関数の中でCASE文を呼び出している。この例の様にCASE文は様々な場所で呼び出せる。

SQL




nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。