sql >> Databáze >  >> RDS >> Mysql

Získání počtu ze 2 tabulek a skupin podle měsíce

Připojte se k oběma tabulkám s měsícem:

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);

Výsledek:

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

Viz tento SQLFiddle

Chcete-li seřadit výsledek podle měsíce, musíte také použít dílčí dotaz, jako je tento:

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;

Viz tento SQLFiddle



  1. Běžné chyby při migraci databází PostgreSQL z On-Prem na AWS RDS

  2. Seznam všech cizích klíčů v tabulce na serveru SQL

  3. Proč nemohu udělat a s x jako (...) s ADODB a Oracle?

  4. Používá se Mysql utf32_unicode_ci a html znaková sada utf-8, ale objeví se znak �