0

It returning only one row of existing data of that month, required all interval 6 month

SELECT YEAR(m.dte) as vacyear, 
       MONTHNAME(m.dte + INTERVAL 1 month) as vacmonth, 
       MONTH(m.dte + INTERVAL 1 month) as vmonth,  
       COUNT(v.created_date) as total
FROM (SELECT DATE_ADD(NOW(), INTERVAL -12 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -11 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -10 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -9 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -8 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -7 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -6 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -5 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -4 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -3 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -2 MONTH) as dte UNION ALL
      SELECT DATE_ADD(NOW(), INTERVAL -1 MONTH) as dte
      ) as m 
LEFT JOIN tbl_team v ON v.created_date >= m.dte 
                    AND v.created_date < m.dte + interval 1 month 
WHERE m.dte >= DATE_ADD(NOW(), INTERVAL - 6 MONTH) 
  AND v.id IN(7,8,9)
GROUP BY vacmonth, vmonth
ORDER BY vmonth ASC
Akina
  • 39,301
  • 5
  • 14
  • 25

0 Answers0