• Hopelessly inefficient but I've always had a soft spot for this as a quirky solution to the problem:

    SELECT [Month] = DATENAME(mm,SomeDateTime)

    , Amount = SUM(SomeAmount)

    FROM dbo.month_order_test

    WHERE SomeDateTime >= '2010'

    AND SomeDateTime < '2011'

    GROUP BY

    DATENAME(mm,SomeDateTime)

    ORDER BY

    CHARINDEX(DATENAME(mm,SomeDateTime), 'JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember');Tested in 2008