2013-03-01 77 views
-3

我想先取一個月,然後每年以顯示順序如下數據如何在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

回答

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) 
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