如何在sql中按月份年份组合列显示数据结果?

如何在sql中按月份年份组合列显示数据结果?

问题描述:

我想先取一个月,然后每年以显示顺序如下数据如何在sql中按月份年份组合列显示数据结果?

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

我想结果作为第一显示2008年的一年,那么2009年一样聪明订购明智的日期,并且应在显示一个月订购明智

+0

你的问题不明确。你想做什么? – Dhwani 2013-03-01 04:56:28

+0

请详细说明。显示有问题的表格和字段的结构以及样例输出的列表。 – gmm 2013-03-01 05:19:32

+0

给出一些关于结构和预期结果的更多信息 – Aspirant 2013-03-01 06:23:25

下面是解..

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) 

假设:

  • 您正在试图计算记录按年份和月份
  • 分组有一个名为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