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

MYSQL select query restituisce l'elenco dei mesi come stringa tra la data di inizio/fine

La query seguente dovrebbe fare il trucco.

I tuoi dati in input e output sono diversi per la 2a riga, l'ho eseguito per i dati di output

select id, DATE_FORMAT(start_Date, '%Y-%c-%d') as Start_Date,
       DATE_FORMAT(end_date,'%Y-%c-%d') as END_Date,
       group_concat( distinct(DATE_FORMAT(aDate, '%Y %M '))) as Descp
from (
     select ss.end_date - interval (a.a ) month as aDate from
     (select 0 as a union all select 1 union all select 2 union all select 3
     union all select 4 union all select 5 union all select 6 union all
     select 7 union all select 8 union all select 9) a, Contracts ss 
     ) mon, Contracts sa
where aDate between sa.start_date and sa.end_date
group by id;