Mysql
 sql >> база данни >  >> RDS >> Mysql

показване на една колона няколко пъти с данни от 3 различни интервала от дати

Можете да използвате следното - което използва агрегатна функция с CASE изявление:

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

вижте SQL Fiddle с демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EclipseLink партидно вмъкване много много бавно

  2. Текстово търсене в множество полета MySQL

  3. Конкатенация на низове в MySQL

  4. Търсачката на думи Scrabble:изграждане на trie, съхраняване на trie, използване на trie?

  5. Bind_param трудности