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

Получаване на броене от 2 таблица и група по месеци

Обединете двете таблици с месец:

ИЗБЕРЕТЕ МЕСЕЦ(I.date) КАТО `месец`, COUNT(I.ID) КАТО `countin`, COUNT(O.ID) КАТО `countOUT` ОТ TableIN I LEFT JOIN TableOUT O ON MONTH(I .Date) =MONTH(O.Date) GROUP BY MONTH(I.date)UNIONSELECT MONTH(O.date) КАТО `месец` , COUNT(I.ID) КАТО `countin` , COUNT(O.ID) КАТО `броене ` ОТ TableIN I RIGHT JOIN TableOUT O ON MONTH(I.Date) =MONTH(O.Date) GROUP BY MONTH(I.date); 

Резултат:

<предварителен код>| МЕСЕЦ | COUNTIN | ОТБРОЯВАНЕ |------------------------------| 5 | 1 | 1 || 7 | 1 | 1 || 6 | 0 | 1 |

Вижте този SQLFiddle

Също така, за да подредите резултата си по месеци, трябва да използвате подзаявка като тази:

SELECT * FROM( SELECT MONTH(I.date) AS `month` , COUNT(I.ID) AS `countin` , COUNT(O.ID) AS `countOUT` FROM TableIN I LEFT JOIN TableOUT O ON MONTH(I.Date) =MONTH(O.Date) ГРУПА ПО МЕСЕЦ(I.date) UNION SELECT MONTH(O.date) КАТО `месец`, COUNT(I.ID) AS `countin`, COUNT(O. ID) КАТО `отброяване` ОТ TableIN I DIGHT JOIN TableOUT O ON MONTH(I.Date) =MONTH(O.Date) GROUP BY MONTH(I.date) ) tblORDER BY Month; 

Вижте този SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между mysqli и mysql?

  2. Изявление на mySQL If

  3. Проектиране на връзки около структура на наследяване

  4. MySql :Изберете израз с помощта на IN оператор

  5. как да получите идентификатор за последно вмъкване след заявка за вмъкване в активен запис на codeigniter