SQLについての質問です。
MySQLを使っています。
1か月間の得意先別の入金の集計を取りたいと思っています。
表としては以下のような感じです。
ID 得意先名 現金計 振込計 相殺計 手数料計 合計
===========================================================
001 aaaaaaa 30,000 40,000 25,000 840 95,840
002 bbbbbbb 10,000 20,000 30,000 420 60,420
SELECT * sum(nyukin) AS genkin
FROM nyukin_meisai
WHERE tokuisaki_id = '001'
AND nyukin_kubun = '現金'
AND uriage_bi BETWEEN '2014/05/01' AND '2014/05/31'
SELECT * sum(nyukin) AS furikomi
FROM nyukin_meisai
WHERE tokuisaki_id = '001'
AND nyukin_kubun = '振込'
AND uriage_bi BETWEEN '2014/05/01' AND '2014/05/31'
以下続く
と得意先毎/各区分ごとに一つひとつSQLを発行すればできるんでしょうけど、
これをひとつのSQLで実現したいと思っていますがSQLをどのように組み立て
てよいものやら困っています。
case を組み込んだりしてもうまくいきませんでした。
どなたかご指導下さい。
よろしくお願いします。
テーブルの構成と正規化の状況がわからないので微妙ですが
こんな感じでは?
SELECT tokuisaki_id
,sum(nyukin*(nyukin_kubun='現金')) AS 現金計
,sum(nyukin*(nyukin_kubun='振込')) AS 振込計
,sum(nyukin*(nyukin_kubun='相殺')) AS 相殺計
,sum(nyukin*(nyukin_kubun='手数料')) AS 手数料計
,sum(nyukin) AS 合計
FROM nyukin_meisai
WHERE
AND uriage_bi BETWEEN '2014/05/01' AND '2014/05/31'
GROUP BY tokuisaki_id
お礼
早速の回答ありがとうございました。 教えて頂いたSQLでバッチリうまくいきました。 ほんとうにありがとうございました。 sum(nyukin*(nyukin_kubun='現金')) こんな表現、初めて見ました。 感心してます。 ありがとうございました。