Sử dụng tập hợp có điều kiện. Không rõ là bạn muốn nhìn vào 12/24 tháng qua, hay vào các tháng của năm 2017 và các tháng tương tự của năm 2016. Tôi cũng không hiểu bạn muốn tính tỷ lệ phần trăm như thế nào. Tôi chia lợi nhuận năm nay cho năm ngoái trong truy vấn dưới đây. Điều chỉnh điều này để nó đáp ứng nhu cầu của bạn.
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;