Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 对分组查询进行排序_Sql Server 2008_Tsql - Fatal编程技术网

Sql server 2008 对分组查询进行排序

Sql server 2008 对分组查询进行排序,sql-server-2008,tsql,Sql Server 2008,Tsql,我使用以下查询来显示数据库中包含数据的月份列表 SELECT DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE) AS MonthYear FROM [ODA].[dbo].[REPORT_CASE_EXT] GROUP BY DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE) 如果我将以下排序添加到查询中,我会得到一个错误,因为它们没有出现在gr

我使用以下查询来显示数据库中包含数据的月份列表

SELECT DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE) AS MonthYear
FROM [ODA].[dbo].[REPORT_CASE_EXT]
GROUP BY DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE)
如果我将以下排序添加到查询中,我会得到一个错误,因为它们没有出现在groupby中

SORT BY DATENAME(YEAR, EVENT_DATE), DATENAME(MONTH, EVENT_DATE)
有什么方法可以完成这种排序吗?

如果您在
排序依据
中使用与在
分组依据
中相同的排序方法,它将“起作用”

ORDER BY
    DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE)
但是,您需要将更多信息添加到“分组依据”,以便能够按照时间顺序而不是字母顺序进行排序(否则2月在1月之前):

GROUP BY
    datename(YEAR, EVENT_DATE),
    datename(MONTH, EVENT_DATE),
    datepart(YEAR, EVENT_DATE),
    datepart(MONTH, EVENT_DATE)
ORDER BY
    datepart(YEAR, EVENT_DATE),
    datepart(MONTH, EVENT_DATE)