SQL, группирующийся к месяцу и году

Я не уверен, что должно я писать в следующем SQL-запросе для показа столбца 'даты' как это: "год месяца" - "9-2011".

SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)

Так, что я хочу сделать, должен изменить данные из первого столбца для показа месяца и года вместо того, чтобы показать месяц только.

61
задан 2 December 2014 в 18:34

2 ответа

Можно попробовать умножение для корректировки года и месяца, таким образом, они будут одним числом. Это, от моих тестов, работает намного быстрее, чем format(date,'yyyy.MM'). Я предпочитаю иметь годом ранее месяц для сортировки цели. Код создается из Версии 12.0.

SELECT (YEAR(Date) * 100) + MONTH(Date) AS yyyyMM
FROM [Order]
...
GROUP BY (YEAR(Date) * 100) + MONTH(Date)
ORDER BY yyyyMM
MS SQL Server Express
0
ответ дан 31 October 2019 в 15:10

SQL Server 2012 выше, я предпочитаю формат использования () функция, больше упрощает.

SELECT format(date,'MM.yyyy') AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY format(date,'MM.yyyy')
3
ответ дан 31 October 2019 в 15:10

Другие вопросы по тегам:

Похожие вопросы: