SQL文がかけません
次のようなテーブルが有ります
client_code , client_name, closed_day , receipt(入金額) ,sales(今月請求額) ,collection_date入金予定月
1 , aaa , 201804 , 10000 , 30000 , 201806
1 , aaa , 201805 , 20000 , 40000 , 201807
1 , aaa , 201806 , 30000 , 50000 , 201808
2 , bbb , 201804 , 40000 , 50000 , 201805
2 , bbb , 201805 , 50000 , 60000 , 201806
2 , bbb , 201806 , 60000 , 70000 , 201807
3 , ccc , 201804 , 70000 , 30000 , 201807
3 , ccc , 201805 , 80000 , 40000 , 201808
3 , ccc , 201806 , 90000 , 50000 , 201809
・
・
・
ここから下のような表を作りたいと思っています。
6月入金管理表
会社コード , 入金予定額 , 売上月 , 実績入金額
1 , aaa , 30000 , 201804 , 30000
2 , bbb , 60000 , 201805 , 60000
3 ,
・
・
こんな感じで各月での入金予定額(aaaの場合2ヶ月前の請求額、bbbは1ヶ月前)
と、実際の入金額を比較したいと思っています。
しかし、SQL文がまったくわかりません。
SELECT 文中にCASE WHENを使って頑張ってみたんですが
1 , aaa , 30000 , 201804 , 0
1 , aaa , 0 , 201806 , 30000
のように、2行に分かれてしまいます。
現在のSQL文は汚いですが以下の感じです。
SELECT client_code , client_name , closed_day,
CASE WHEN collection_date ='2018/06' THEN sales ELSE 0 end as '入金予定額' ,
CASE WHEN closed_day ='2018/06' THEN receipt ELSE 0 end as '入金額'
FROM Data
WHERE closed_day ='2018/06' OR collection_date ='2018/06'
GROUP BY client_code , client_name ,closed_day ,
collection_date ,sales ,receipt
ORDER BY client_code
どなたかお助けください
お礼
ご回答ありがとうございます。 教えて頂いたSQL文で出来ました。 ありがとうございました。