Единственный способ, которым я могу видеть это в прямом SQL, - это иметь другую таблицу под названием Periods, содержащую все годы и месяцы, как показано ниже:
Year Month
2010 10
2010 11
2010 12
2011 1
2011 2
2011 3
2011 4
и так далее ...
Теперь вы присоединяете свою таблицу платежных данных к этой таблице следующим образом:
SELECT PD.[name], Per.Year, Per.Month,
PD.payed / DateDiff(mm, PD.start_date, PD.end_date) AS Payed
FROM payment_details PD
INNER JOIN Periods Per On
Per.Year >= DatePart(yy, start_date) AND Per.Month >= DatePart(mm, start_date)
AND Per.Year <= DatePart(yy, end_date) AND Per.Month <= DatePart(mm, end_date)
ORDER BY PD.[name], Per.Year, Per.Month
В противном случае вам, вероятно, потребуется создать хранимую процедуру, пройтись по месяцам и создать результирующий набор данных на лету.