Обединете двете таблици с месец:
ИЗБЕРЕТЕ МЕСЕЦ(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;