- ベストアンサー
CASE文内での計算
あるテーブルにA,Bと言う列があるとします。 Aの内容によってBの加算を振り分けたいのですが、どのようにしたら良いのでしょうか?。 Aの内容が'1'なら、X1と言う変数にBを加算、Aの内容が'2'ならX2と言う変数にBを加算し表示したい。 SELECT CASE WHEN A = '1' THEN X1 = X1 + B WHEN A = '2' THEN X2 = X2 + B END X1 X2 FROM TABLE_A....... SQL文はデタラメですが、やりたい事はこんな事です。 宜しく御願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
select (sum(case when A = '1' then B else 0 end) + X1) as x1, (sum(case when A = '2' then B else 0 end) + X2) as x2 from TABEL_A でいいのかな?確かめてませんが(^^;
その他の回答 (3)
- O_cyan
- ベストアンサー率59% (745/1260)
Select Case A Case 1 X1 = X1 + B Case 2 X2 = X2 + B End Select これではダメでしょうか?
- chairwarmer
- ベストアンサー率41% (163/393)
#1です、勘違いしてましたね。ごめんなさい(^^;; A = '2' であってもBは2倍する必要はないんですね。 2行目の B*2 の *2 は不要です。 (“X2”を“かける2”と読んでしまいました)
- chairwarmer
- ベストアンサー率41% (163/393)
SELECT SUM(CASE WHEN A = '1' THEN B END) AS X1, SUM(CASE WHEN A = '2' THEN B*2 END) AS X2 FROM TABLE_A なんてやり方はいかがでしょうか。
お礼
お礼が遅くなってしまってすみません。 ありがとうございます。教えて頂いた方法では加算がなされないので、加算する構文を追加するようにしました。
お礼
ありがとうございます。 ここ何週間か別の作業が手一杯の状態で、試す機会が無いのですが、お教えいただいた内容で問題と思います。