Если вы используете Sql server 2012 или +, вы также можете использовать функцию форматирования.
select cast('2018-02-23 15:34:09.390' as datetime) as datenew, 100 as price into #temp union all
select cast('2018-02-24 15:34:09.390' as datetime) as datenew, 300 as price union all
select cast('2018-03-10 15:34:09.390' as datetime) as datenew, 500 as price union all
select cast('2018-03-11 15:34:09.390' as datetime) as datenew, 700 as price union all
select cast('2019-02-23 15:34:09.390' as datetime) as datenew, 900 as price union all
select cast('2019-02-23 15:34:09.390' as datetime) as datenew, 1500 as price
select Monthyear, total from (
select format(datenew, 'MMMM-yyyy') Monthyear, format(datenew, 'yyyyMM') NumMMYY ,sum(price) total from #temp
group by format(datenew, 'MMMM-yyyy') , format(datenew, 'yyyyMM') ) test
order by NumMMYY
Поскольку формат преобразует его в nvarchar, мне пришлось создать еще один столбец в подзапросе, чтобы упорядочить его. Если вы не возражаете против еще одного столбца, вам не нужно использовать подзапрос, и вы можете заказать его с другим столбцом. Я не мог найти какой-либо другой способ (кроме оператора case, который не очень хорошая идея), чтобы сделать это в том же select
Output:
Monthyear Total
February-2018 400
March-2018 1200
February-2019 2400