Mysql
 sql >> Baza danych >  >> RDS >> Mysql

pokazywanie jednej kolumny kilka razy z danymi z 3 różnych przedziałów dat

Możesz użyć następującego - która używa funkcji agregującej z CASE oświadczenie:

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

zobacz SQL Fiddle z wersją demonstracyjną



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zarządzasz zapytaniami SQL

  2. mysql:Nie możemy utworzyć wyzwalaczy na tabelach systemowych?

  3. Jak wywołać procedurę w kohanie 3.1

  4. Odpowiednik varchar(max) w MySQL?

  5. PHP PDO nie zgłasza wyjątku przy wstawianiu zduplikowanego klucza