我试图转换此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
你想让它们按字母顺序排列还是按日历顺序排序?一月,二月,三月等或四月,八月,十二月......? –