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

MySQL beregne procentdelen af ​​to andre beregnede summer inklusive en gruppe efter måned

Brug betinget aggregering. Det fremgår ikke, om du vil se på de seneste 12/24 måneder, eller på månederne i 2017 og de samme måneder i 2016. Jeg forstår heller ikke, hvordan du vil beregne en procentdel. Jeg dividerer dette års overskud med sidste års i nedenstående forespørgsel. Juster dette, så det opfylder dine behov.

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;



  1. Få den sidste dag i måneden i PostgreSQL

  2. MySql vælg alle rækker i en tabel baseret på MAX værdi i en anden tabel

  3. Oracle - returner flere tæller som én forespørgsel

  4. Opdater database fra Javascript onClick By Ajax PHP