2017-05-23 145 views
0

我想这段代码,它返回与月份名称的所有记录,但没有总数如何从SQL Server获得每年每月的计数记录?

SELECT 
    DATENAME(month, DATEADD(month, MONTH([R_datetime]), -1)) MonName, 
    COUNT(*) count 
FROM 
    [Tbl_TechRequest] 
WHERE 
    ([R_datetime]) BETWEEN DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) 
         AND DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1)  
GROUP BY 
    [R_datetime] 
+3

你GROUP BY是关闭 – scsimon

+0

是啊。 @scsimon是正确的。分组由“月份”表示您将获得计数。 –

+1

请看看MCVE,[为什么](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to -be-a-very-simple-sql-query)和[how](https://stackoverflow.com/help/mcve)。 – KtX2SkD

回答

0
SELECT 
    DATEPART(year, R_datetme), 
    DATEPART(month, R_datetime), 
    count (*) 
from myTable 
where 
    [R_datetime]) > = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) 
group by 
    DATEPART(year, R_datetme), 
    DATEPART(month, R_datetime) 

OR

SELECT 
    DATEPART(year, R_datetme)*100 + DATEPART(month, R_datetime), 
    count(*) 
from myTable 
where 
    [R_datetime]) > = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) 
group by 
    DATEPART(year, R_datetme)*100 + DATEPART(month, R_datetime) 
+0

您仍然需要OP中的Where子句 – scsimon