Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL calcola la percentuale di altre due somme calcolate, incluso un gruppo per mese

Usa l'aggregazione condizionale. Non è chiaro se si vogliono guardare gli ultimi 12/24 mesi, oppure i mesi del 2017 e gli stessi mesi del 2016. Non capisco nemmeno come si voglia calcolare una percentuale. Divido i profitti di quest'anno per quelli dell'anno scorso nella query sottostante. Regolalo in modo che soddisfi le tue esigenze.

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;