こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

sql serverのsqlについて

windows7 64bit sql server 2012 expressをつかっています。

select YEAR("日付") as yere,MONTH("日付") as month,収支名,sum("金額")as kin from 収支
group by YEAR("日付"),MONTH("日付"),収支名
を実行して、

yeremonth 収支名 kin

20136支出13011
20136収入33500
20137支出20000
20137収入70000

と、なりましたが、同じ年、月の収支と支出を求める表を得るにはどうしたらよいでしょうか?

yeremonth 差
2013 6 -24089
2013 7 50000

のような感じです。

(もとのテーブルはこれです)
id日付収支名項目金額
12013-06-16収入給料15000
22013-06-16支出ガス代555
......

宜しくお願いします。

投稿日時 - 2013-07-22 04:30:01

QNo.8186471

困ってます

質問者が選んだベストアンサー

case式を使って、

select YEAR("日付") as yere,MONTH("日付") as month,sum(case when "収支名" = '収入' then "金額" else "金額" * -1 end) as "差" from 収支
group by YEAR("日付"),MONTH("日付")

こんな感じでどうでしょうか。
"収支名"には'収入'・'支出'しかない前提です。

投稿日時 - 2013-07-22 09:21:36

お礼

うまくいきました!!
いろいろな書き方があるんですね。
もっと勉強しようと思います。
ありがとうございました。

投稿日時 - 2013-07-22 23:38:12

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)