如何通过sql中的月 - 月组合列按顺序显示数据结果?

时间:2013-03-01 04:46:39

标签: sql

我希望按照第一个月和第一年的顺序显示以下数据

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

我希望结果显示2008年,然后2009年就像明智的订购明智日期,也应该按顺序显示月份

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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)
相关问题