「みんな教えて! 選手権!!」開催のお知らせ

あるテーブルに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文はデタラメですが、やりたい事はこんな事です。
宜しく御願いします。

A 回答 (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



でいいのかな?確かめてませんが(^^;
    • good
    • 1
この回答へのお礼

ありがとうございます。

ここ何週間か別の作業が手一杯の状態で、試す機会が無いのですが、お教えいただいた内容で問題と思います。

お礼日時:2004/10/22 09:48

Select Case A


Case 1
X1 = X1 + B
Case 2
X2 = X2 + B
End Select

これではダメでしょうか?
    • good
    • 0

#1です、勘違いしてましたね。

ごめんなさい(^^;;

A = '2' であってもBは2倍する必要はないんですね。
2行目の B*2 の *2 は不要です。
(“X2”を“かける2”と読んでしまいました)
    • good
    • 0

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

なんてやり方はいかがでしょうか。
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまってすみません。

ありがとうございます。教えて頂いた方法では加算がなされないので、加算する構文を追加するようにしました。

お礼日時:2004/10/22 09:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報