What i need to acomplish i sum a value of column of MySQL table based on VARCHAR column value and year range. Maybe that's a confusing so i'll put a basic example:
Columns: id(useless for this), fruit_type, date_of_sale, sale_type, price
Basic Query:
SELECT * FROM fruits
gives me :
1 APPLES 2018-05-30 GOOD 50.50
2 APPLES 2018-05-30 BAD -20.50
3 APPLES 2018-05-30 GOOD 40.00
4 APPLES 2018-05-30 BAD -10.50
5 APPLES 2017-05-29 GOOD 39.50
6 APPLES 2017-05-29 BAD -10.00
7 APPLES 2017-05-29 GOOD 30.00
8 APPLES 2017-05-29 BAD -20.00
9 BANANAS 2018-05-29 GOOD 20.00
10 BANANAS 2018-05-29 BAD 20.00
11 BANANAS 2018-05-29 GOOD 10.00
12 BANANAS 2018-05-29 BAD -5.00
13 BANANAS 2017-05-29 GOOD 50.00
14 BANANAS 2017-05-29 BAD -3.00
15 BANANAS 2017-05-29 GOOD 10.00
16 BANANAS 2017-05-29 BAD -3.00
17 ORANGES 2018-05-28 GOOD 5.00
18 ORANGES 2018-05-28 BAD -1.00
19 ORANGES 2017-05-28 GOOD 10.00
20 ORANGES 2017-05-28 BAD -1.00
What i need to acomplish:
Fruit Sales 2017 Bad Sales 2017 Total 2017 Sales 2018 Bad Sales 2018 Total 2018
APPLES 69.50 -30.00 39.50 90.50 -30.50 60.00
BANANAS 60.00 -6.00 54.00 30.00 -10.00 20.00
ORANGES 10.00 -1.00 9.00 5.00 -1.00 5.00
The query i've been trying is:
SELECT fruit_type AS Fruit,\
(SELECT SUM(price) FROM fruits WHERE sale_type='GOOD' AND date_of_sale BETWEEN '2017-01-01' AND '2017-12-31') AS Sales_2017,\
(SELECT SUM(price) FROM fruits WHERE sale_type='BAD' AND date_of_sale BETWEEN '2017-01-01' AND '2017-12-31') AS Bad_Sales_2017,\
(SELECT SUM(Sales_2017-Bad_Sales_2017)),\
(SELECT SUM(price) FROM fruits WHERE sale_type='GOOD' AND date_of_sale BETWEEN '2018-01-01' AND '2018-12-31') AS Sales_2018,\
(SELECT SUM(price) FROM fruits WHERE sale_type='BAD' AND date_of_sale BETWEEN '2018-01-01' AND '2018-12-31') AS Bad_Sales_2018,\
(SELECT SUM(Sales_2018-Bad_Sales_2018)),\
FROM fruits
GROUP BY fruit_type;
The problem is the values returned by the query are the total SUM of the whole column with value GOOD or BAD instead of value GOOD by fruit type match.
Need some tips for that problem plz.