-3

我想按月和年的顺序显示以下数据

count     Date
-------  ----------
 5        Aug 2011 
 6        jan 2008
10        feb 2009

我想首先显示一个 2008 年,然后是 2009 年,就像明智的排序日期一样,也应该按顺序显示月份

4

2 回答 2

0

假设:

  • 您正在尝试按年和月计算记录分组
  • 您有一个名为的表Table1,其中有一列名为EventDate
  • 您正在使用 SQL Server(您没有指定)
  • 您不介意在输出中有额外的列(您可以忽略不需要的列)
  • 您想按计数排序,然后按年排序,然后按月排序

基于这些假设,以下内容应该可以满足您的需求。

SELECT COUNT(*) AS Count,
        CONVERT(CHAR(3), DATENAME(MONTH, EventDate))
                + ' ' + CONVERT(CHAR(4), YEAR(EventDate)) AS Date,
        MIN(YEAR(EventDate)) AS Year, MIN(MONTH(EventDate)) AS Month
        FROM Table1
        GROUP BY CONVERT(CHAR(4), YEAR(EventDate)),
                CONVERT(CHAR(3), DATENAME(MONTH, EventDate))
        ORDER BY COUNT(*), Year, Month
于 2013-03-01T06:37:11.683 回答
0

这是解决方案..

select convert(char(3), Date, 0)+'  '+RIGHT(CONVERT(varchar, YEAR(Date)), 4) as [Date]
,count(id) as Count from Tabletest 
 group by convert(char(3), Date, 0)+'  '+ RIGHT(CONVERT(varchar, YEAR(Date)), 4),month(Date),YEAR(Date)
order by YEAR(Date),MONTH(Date)
于 2013-03-01T07:13:15.657 回答