SELECT COUNT(COURSEID) AS [COUNT], UPPER(DATENAME(MONTH,CONVERT(VARCHAR(50),DATEADD (MM, 0, STAMP),106))) AS [MONTH] ,DATENAME(YY,STAMP) AS [MONTH] FROM SESSIONSTATS WHERE STAMP BETWEEN STAMP AND GETDATE() and datediff(mm,STAMP,GETDATE())<=4GROUP BY DATENAME(MONTH,CONVERT(VARCHAR(50),DATEADD (MM, 0, STAMP),106)),DATENAME(YY,STAMP) ORDER BY DATENAME(MONTH,CONVERT(VARCHAR(50),DATEADD (MM, 0, STAMP),106)) DESC
output of above query like this :
20356 OCTOBER 200918902 NOVEMBER 200911898 JANUARY 201020994 DECEMBER 2009
but I want to order like this
11898 JANUARY 2010
20994 DECEMBER 2009
18902 NOVEMBER 2009
20356 OCTOBER 2009
how can i achive this.?
Well you could try the ORDER BY as :
ORDER BY DATEADD(MM,0,STAMP) desc
It is becuase the dates are sorted as varchars as you converted to varchars
Always do the formation at front end application
Managed Windows Shared Hosting by OrcsWeb