Using MySQL's Case Statement
The date field "fund_date" is of form 'yyyy-mm-dd'.
The following query extracts the fund performance on a per-month-per-year basis.
The following query extracts the fund performance on a per-month-per-year basis.
SELECT year(fund_date) as year,
sum(CASE month(fund_date) WHEN 1 THEN percent_return END) AS Jan ,
sum(CASE month(fund_date) WHEN 2 THEN percent_return END) AS Feb ,
...
sum(CASE month(fund_date) WHEN 11 THEN percent_return END) AS Nov ,
sum(CASE month(fund_date) WHEN 12 THEN percent_return END) AS 'Dec'
FROM tbl_funds group by year(fund_date) ORDER BY year(fund_date) desc
sum(CASE month(fund_date) WHEN 1 THEN percent_return END) AS Jan ,
sum(CASE month(fund_date) WHEN 2 THEN percent_return END) AS Feb ,
...
sum(CASE month(fund_date) WHEN 11 THEN percent_return END) AS Nov ,
sum(CASE month(fund_date) WHEN 12 THEN percent_return END) AS 'Dec'
FROM tbl_funds group by year(fund_date) ORDER BY year(fund_date) desc
Labels: case statement

