我試圖轉換此SQL視圖按順序排序月份名稱。 任何幫助,將不勝感激:SQL查詢月份名稱排序
SELECT DATENAME(Month, REQDATE) AS Month, COUNT(WO_NUM) AS Tickets
FROM dbo.TASKS
WHERE (REQDATE >= '6/1/13')
GROUP BY DATENAME(Month, REQDATE)
目前,它顯示了幾個月失靈..
我試圖轉換此SQL視圖按順序排序月份名稱。 任何幫助,將不勝感激:SQL查詢月份名稱排序
SELECT DATENAME(Month, REQDATE) AS Month, COUNT(WO_NUM) AS Tickets
FROM dbo.TASKS
WHERE (REQDATE >= '6/1/13')
GROUP BY DATENAME(Month, REQDATE)
目前,它顯示了幾個月失靈..
試試這個。
SELECT MAX(DATENAME(Month, REQDATE)) AS Month, COUNT(WO_NUM) AS Tickets
FROM dbo.TASKS
WHERE (REQDATE >= '6/1/13')
GROUP BY DATEPART(Month, REQDATE)
ORDER BY DATEPART(Month, REQDATE) ASC
這是排序A-Z,我正在拍攝一月,二月,三月.. – user1854651
@ user1854651好的,回答更新。 –
在SQL Server 2008上運行此錯誤時出現錯誤。「列」dbo.TASKS.REQDATE「在ORDER BY子句中無效,因爲它不包含在聚合函數或GROUP BY子句中。」 –
的TSQL功能DATEPART()應該讓你每月爲整數。試試這個:
SELECT DATENAME(Month, REQDATE) AS Month, COUNT(WO_NUM) AS Tickets
FROM dbo.TASKS
WHERE (REQDATE >= '6/1/13')
ORDER BY DatePart(month, REQDATE)
GROUP BY DatePart(Month, REQDATE), DateName(Month, REQDATE)
列「dbo.TASKS.REQDATE」在ORDER BY子句中無效,因爲它不包含在聚合函數或GROUP BY子句中。 – user1854651
好點。我改變了groupby使用DatePart而不是DateName。嗯。也許它應該有兩個。讓我再次改變它。 – tgolisch
這將顯示日曆順序中列出的月份的結果。
SELECT DATENAME(Month, REQDATE) AS Month, COUNT(WO_NUM) AS Tickets
FROM dbo.TASKS
WHERE (REQDATE >= '6/1/13')
GROUP BY DATENAME(Month, REQDATE), DATEPART(Month, REQDATE)
ORDER BY DATEPART(Month, REQDATE) ASC
我加DATEPART(Month, REQDATE)
到GROUP BY子句,這不應該影響分組的結果爲DATEPART函數將是每個組中的所有日期相同。
生病了!感謝Adam。 – Kerry7777
如果有人仍在尋找答案。訣竅是在日期月份使用AVG。
SELECT DATENAME(Month, REQDATE) AS Month, COUNT(WO_NUM) AS Tickets, AVG(DATEPART(mm, REQDATE)) AS MonthNum
FROM dbo.TASKS
WHERE (REQDATE >= '6/1/13')
GROUP BY DATENAME(Month, REQDATE)
ORDER BY MonthNum ASC
你想讓它們按字母順序排列還是按日曆順序排序?一月,二月,三月等或四月,八月,十二月......? –