2015-08-07 3 views
1

Моя цель - вернуть строку месяца с столбцом Year. Это делается для того, чтобы получить сумму продаж одного конкретного арендатора в таблице за год и месяц.SQL Server: запрос для возврата имени месяца вместо номера

Я начал этот код

select 
    month(date) month, 
    isnull(sum(case when year(DATE) = 2015 then sales end), 0) as '2015' 
from 
    tblSales 
where 
    tenantcode = 'cmbina13' 
group by 
    month(date) 
order by 
    month(date) 

и я вернусь этот результат:

enter image description here

цифры являются правильными. Однако я хочу, чтобы месяц столбец превратился в имя месяца. Как ниже, как желаемый результат

enter image description here

+1

Посмотрите на это http://stackoverflow.com/questions/ это изображение 185520/convert-month-number-to-month-name-function-in-sql – DarkKnight

+0

И почему вы честно хотите сделать что-то подобное? Пусть ваш слой презентации обрабатывает материал презентации. –

+0

Будет ли это сильно ухудшаться, если это произойдет в sql? – rickyProgrammer

ответ

4

Вместо Month функция использования Datename функция Month DatePart

select datename(month,date) [month] 
     ,isnull(sum(case when year(DATE) = 2015 then sales end), 0) as '2015' 
from tblSales 
where tenantcode = 'cmbina13' 
group by datename(month,date) 
Order by DATEPART(MM,datename(month,date)+' 01 2011') 
+0

errror sir: Столбец 'tblSales.date' недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. – rickyProgrammer

+0

@rickyProgrammer - сейчас проверьте –

+0

Да, это сработало, но есть проблемы с заказом. Он должен быть в правильном порядке от Jan - Dec – rickyProgrammer

1
SELECT  DATENAME(mm, date) AS MName 
      ,ISNULL(SUM(CASE WHEN YEAR(GETDATE()) = 2015 then sales end), 0) AS '2015' 
FROM  tblSales 
WHERE  tenantcode = 'cmbina13' 
GROUP BY DATENAME(mm, date) 
order by DATENAME(mm, date) 
+0

Это будет порядок месяцев в алфавитном порядке –

+0

да, это так. спасибо, хотя за ответ тоже .. отметил это также как полезный ответ, для справки других потребностей, когда они нуждаются в этом формате. – rickyProgrammer

Смежные вопросы