Это очень похоже на ваш предыдущий вопрос . Здесь вы можете сместить дату на 3 месяца, чтобы вычислить финансовый год, к которому она относится, а затем выполнить условное агрегирование:
select
year(dateadd(month, -3, d_date)) yr,
sum(case when month(d_date) = 4 then amount end) Apr,
sum(case when month(d_date) = 5 then amount end) May,
sum(case when month(d_date) = 7 then amount end) Jun,
...
sum(case when month(d_date) = 12 then amount end) Dec,
sum(case when month(d_date) = 1 then amount end) Jan,
sum(case when month(d_date) = 2 then amount end) Feb,
sum(case when month(d_date) = 3 then amount end) Mar,
sum(amount) total
from mytable
group by year(dateadd(month, -3, d_date))
order by yr