Гораздо лучше с точки зрения стоимости исполнения:
Select * From
Group By monthcolumn,firstname,lastname
ORDER BY DATEPART(YEAR,datecolumn) DESC, DATEPART(MONTH, datecolumn) DESC
Или этот немного дороже с точки зрения стоимости исполнения:
Select * From
Group By monthcolumn ,firstname,lastname
ORDER BY CASE WHEN (DATEPART(MONTH, datecolumn))=3 THEN 1
WHEN (DATEPART(MONTH, datecolumn))=2 THEN 2
WHEN (DATEPART(MONTH, datecolumn))=1 THEN 3
WHEN (DATEPART(MONTH, datecolumn))=12 THEN 4
WHEN (DATEPART(MONTH, datecolumn))=11 THEN 5
WHEN (DATEPART(MONTH, datecolumn))=10 THEN 6
ELSE 0 END
ASC