I have a database in which i have a table to save reports . Each report haves a date (year-month-day) which is set whenever the report got created .
After a lot of tests i got something to work but just not as i would like it to work.
I want to get the quantity of reports that were made on every month from an initial date (year-month-day) to a final date (year-month-day). But i'm not quite sure how to get it done.
This is the MySQL sentence i'm using right now:
SELECT meses.month id_mes, count(re_fecha) total
       FROM
       (
               SELECT 1 AS MONTH
                  UNION SELECT 2 AS MONTH
                  UNION SELECT 3 AS MONTH
                  UNION SELECT 4 AS MONTH
                  UNION SELECT 5 AS MONTH
                  UNION SELECT 6 AS MONTH
                  UNION SELECT 7 AS MONTH
                  UNION SELECT 8 AS MONTH
                  UNION SELECT 9 AS MONTH
                  UNION SELECT 10 AS MONTH
                  UNION SELECT 11 AS MONTH
                  UNION SELECT 12 AS MONTH
       ) as meses
LEFT JOIN reportes ON month(re_fecha)  = meses.MONTH
WHERE re_fecha BETWEEN '2017-01-01' AND '2017-08-31'
GROUP BY meses.MONTH, monthName(re_fecha)
This is the following result i'm getting with the MySQL sentence:
id_mes  | total
---------------
  04    | 15
  05    | 5 
  06    | 15
  07    | 2
I'm not sure if this helps in any way, but if i don't use the "where re_fechas... " i get a result that is closer to what we look for:
id_mes  | total         
-------------           
01      | 0         
02      | 0         
03      | 0         
04      | 15            
05      | 5
06      | 15
07      | 2
08      | 6
09      | 0
10      | 0
11      | 0
12      | 0
And finally, what i would like to see:
id_mes       | total            
-------------------     
01-2017      | 0            
02-2017      | 0             
03-2017      | 0            
04-2017      | 15
05-2017      | 5
06-2017      | 15
07-2017      | 2
08-2017      | 6
I have two problems with how it works now:
- When i use the sentence "where" the months that have 0 reports on the specified dates, are not shown. If i do not use "where", i get the things almost in the way i want them, but not in the range of dates i want. 
- The other issue i had is i would like to get the year of the month (As shown in the desired code block above). 
I hope this is enough information to understand everything, i'm not sure if i could provide the database, but if you think that would help, let me know.
 
     
    