簡體   English   中英

計算日期時間每個月內的行數,按年份月份分組

[英]Count number of rows within each month of a datetime, group by year month

我很難得到一個存儲程序來給我這種類型的輸出:

+-----------+------------------+
|   Month   | NoOfModifcations |
+-----------+------------------+
| Jan  2008 |                5 |
| Nov  2008 |                6 |
| Feb  2010 |               20 |
| Jul  2013 |                7 |
+-----------+------------------+

到目前為止,我設法使輸出看起來像這樣,但是我還沒有設法使輸出按年然后按月排序-這是按字母順序進行的。 這是我到目前為止的內容:

SELECT convert(varchar(4), YEAR(LastModifedDate)) + ' ' + convert(varchar(3),datename(month, LastModifedDate)) as Dates,
    count(*) as Number

FROM aims.Modification

WHERE CompanyID = @companyID 
    AND LastModifedDate >= DATEADD(month, @numberOfMonths * -1, GETDATE())

GROUP BY convert(varchar(4), YEAR(LastModifedDate)) + ' ' + convert(varchar(3),datename(month, LastModifedDate))

我確實在datetime字段上嘗試了ORDER BY,但得到了:

Column "aims.Modification.LastModifedDate" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.

在日期時間上轉換/選擇/分組依據也很麻煩。 那里的任何建議也將非常有幫助!

提前致謝!

應該這樣做:

SELECT  CONVERT(VARCHAR(4),YEAR(LastModifedDate)) + ' ' + 
        CONVERT(VARCHAR(3),DATENAME(MONTH,LastModifedDate)) AS Dates,
        COUNT(*) as Number
FROM aims.Modification
WHERE CompanyID = @companyID 
    AND LastModifedDate >= DATEADD(MONTH,@numberOfMonths * -1,GETDATE())
GROUP BY CONVERT(VARCHAR(4),YEAR(LastModifedDate)) + ' ' + 
         CONVERT(VARCHAR(3),DATENAME(MONTH,LastModifedDate)),
         CONVERT(VARCHAR(6),LastModifedDate,112)
ORDER BY CONVERT(VARCHAR(6),LastModifedDate,112)
SELECT YEAR(LastModifedDate), MONTH(month) as Dates, count(*) as Number
FROM aims.Modification
WHERE CompanyID = @companyID 
    AND LastModifedDate >= DATEADD(month, @numberOfMonths * -1, GETDATE())
GROUP BY YEAR(LastModifedDate), MONTH(LastModifiedDate)
ORDER BY YEAR(LastModifedDate), MONTH(LastModifiedDate)

保持簡單,並在您的C#代碼或報告中進行串聯...

使用此將您的varchar轉換為datetime

 SELECT CONVERT(Datetime,'Jan  2008 ')  

然后根據datetime desc對列進行排序。 對不起,我們還沒有完成一個簡短的答案,希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM