Verwenden Sie die bedingte Aggregation. Es ist nicht klar, ob Sie die letzten 12 / 24 Monate oder die Monate 2017 und die gleichen Monate 2016 betrachten möchten. Ich verstehe auch nicht, wie Sie einen Prozentsatz berechnen möchten. Ich teile die diesjährigen Gewinne durch die des letzten Jahres in der folgenden Abfrage. Passen Sie dies an Ihre Anforderungen an.
select
b_emp_id,
month,
turnover_this_year,
profit_this_year,
turnover_last_year,
profit_last_year,
profit_this_year / profit_last_year * 100 as diff
from
(
select
b_emp_id,
month(b_date) as month,
sum(case when year(b_date) = year(curdate()) then b_turnover end) as turnover_this_year,
sum(case when year(b_date) = year(curdate()) then b_profit end) as profit_this_year,
sum(case when year(b_date) < year(curdate()) then b_turnover end) as turnover_last_year,
sum(case when year(b_date) < year(curdate()) then b_profit end) as profit_last_year
from bookings
where year(b_date) in (year(curdate()), year(curdate()) - 1)
and month(b_date) <= month(curdate())
group by b_emp_id, month(b_date)
) figures
order by b_emp_id, month;