नीचे दी गई क्वेरी को चाल चलनी चाहिए।
इनपुट और आउटपुट में आपका डेटा दूसरी पंक्ति के लिए अलग है, मैंने इसे आउटपुट डेटा के लिए चलाया है
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;