SELECT * FROM TabPrice
UNION 
SELECT   t1.id,t1.matnr,dateadd(day,number,t1.mdate) as mdate,t1.price
from master..spt_values with(nolock) 
INNER JOIN TabPrice t1 ON dateadd(day,number,t1.mdate)>=t1.mdate
INNER JOIN TabPrice t2 ON t1.id+1=t2.id
where type='P' and number>=0
and DATEDIFF(day,t1.mdate,t2.mdate)>number