下記のような問題のときに2018年に絞って各地域ごとのアイスの総売上をだしたいとします。
出力結果は、state_name, product_name, total_salesのカラムでだします。
このとき、私は下記記載のクエリでいけると思いましたが、これだと、2017年には購入していたplace.placeの場所の2018年の売上が0の場合は出力されません。
つまり、下記のテーブルでいうと、Chicagoのmellow candyが2018年は0なのにもかかわらず出力結果として下記のクエリだと出力されません。
そして、実際には無いデータを出力するようにクエリを書く必要があるのかなと思っています。
どなたか、こういった場合どうかけばいいのかご存知でしたらご教示頂けると幸いです。
mysql
1select 2pl.place as state_name, 3pr.name as product_name, 4sum(s.quantity*pr.price) 5from sales s 6left join price pr on pr.id = s.id 7left join place pl on pl.id = s.id 8where s.date = 2018 9group by state_name, product_name
priceテーブル
id | name | price |
---|---|---|
1 | ice candy | 60000 |
2 | coke candy | 50000 |
3 | candy | 20000 |
4 | mellow candy | 10000 |
.... | ||
.... | ||
.... |
placeテーブル
id | place |
---|---|
1 | kansas |
2 | NewYork |
3 | Chicago |
.... | |
.... | |
.... |
salesテーブル
product_id | state_id | quantity | date |
---|---|---|---|
2 | 2 | 2 | 2018 |
3 | 3 | 5 | 2019 |
2 | 3 | 2 | 2018 |
4 | 3 | 10 | 2017 |
.... | |||
.... | |||
.... |