Code:insert into yourtable select distributor_id , brand_id ,year(dateadd(mm,number,maxm)), month(dateadd(mm,number,maxm)) ,0 from ( select distributor_id , brand_id ,convert(char(8),max((year*100+month)*100+1)) maxm ,datediff(mm ,convert(char(8),max((year*100+month)*100+1)) ,dateadd(mm,10,getdate())) months from yourtable group by distributor_id , brand_id )a join master..spt_values on type='P' and number between 1 and months