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

Få optælling fra 2 bord og gruppe efter måned

Deltag i begge borde med måned:

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)
 GROUP BY MONTH(I.date)
UNION
SELECT MONTH(O.date) AS `month`
     , COUNT(I.ID) AS `countin`
     , COUNT(O.ID) AS `countOUT`
  FROM TableIN I
 RIGHT JOIN TableOUT O
    ON MONTH(I.Date) = MONTH(O.Date)
 GROUP BY MONTH(I.date);
 

Resultat:

| MONTH | COUNTIN | COUNTOUT | ------------------------------ | 5 | 1 | 1 | | 7 | 1 | 1 | | 6 | 0 | 1 |

Se denne SQLFiddle

For også at bestille dit resultat efter måned skal du bruge en underforespørgsel som denne:

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) GROUP BY MONTH(I.date) UNION SELECT MONTH(O.date) AS `month` , COUNT(I.ID) AS `countin` , COUNT(O.ID) AS `countOUT` FROM TableIN I RIGHT JOIN TableOUT O ON MONTH(I.Date) = MONTH(O.Date) GROUP BY MONTH(I.date) ) tbl ORDER BY Month;

Se denne SQLFiddle



  1. Mangler første række data fra MYSQL

  2. Python Matplotlib og MySQL og Ginput

  3. Opdatering af en MySql-database ved hjælp af PHP via en onClick-javascript-funktion

  4. Kombiner flere rækker til én MySQL Join