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

viser én kolonne flere gange med data fra 3 forskellige datointervaller

Du kan bruge følgende - som bruger en aggregeret funktion med en CASE erklæring:

select p.name,
  v.v_name,
  sum(case when Month(py.pay_date) = 4 then amount end) april_amount,
  sum(case when Month(py.pay_date) = Month(curdate())
        then amount end) current_month_amount,
  sum(case when Month(py.pay_date) = Month(curdate())-1
        then amount end) previous_month_amount
from persons p
left join vehicle v
  on p.id = v.person_veh
left join payment py
  on p.id = py.person_id
group by p.name,
  v.v_name

se SQL Fiddle with Demo



  1. Hvor man sikkert opbevarer databaselegitimationsoplysninger på et PHP-websted

  2. Sammenkædning af tabeller mellem to modeller i Cakephp

  3. Sådan får du den første post i hver gruppe i MySQL

  4. internationaliseret regulært udtryk i postgresql