2017-05-23 149 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