Для большей эффективности запросов я бы избежал подхода format ().
select
left(datename(month,[Date]),3) [Month]
, year([Date]) [Year]
, [Tickets Generated]
from (
SELECT
dateadd(month,datediff(month,0,t.[Date]),0) as [Date]
, COUNT(*) as [Tickets Generated]
FROM [SambaData2].[dbo].[Tickets] AS t
GROUP BY dateadd(month,datediff(month,0,t.[Date]),0)
) as d
ORDER BY [Date]
Суть этого подхода заключается в следующем:
dateadd(month,datediff(month,0,t.[Date]),0)
это приводит к определению первого дня соответствующего года и месяца, таким образом, оставляя всю дату доступной дляпорядок по пункту, но все еще группируется до необходимого уровня.Выполнение следующих действий может помочь объяснить
select
datediff(month,0,getdate()) a
, dateadd(month,datediff(month,0,getdate()),0) b
, left(datename(month,getdate()),3) c
, getdate() d
a b c d
------- ------------ ----- ---------------------
1425 2018-10-01 Oct 2018-10-04 08:08:19