2012-09-21 70 views
0

我正在查詢計算給定的月份和年份的結果數量。不過,我還需要使用完整日期來創建一個月份字符串。我知道,select子句中的任何內容也必須在group by子句中。但是,我只想按月份和年份分組以獲得正確的計數結果。我該如何解決這個問題?SQL服務器選擇屬性,但不是由該屬性組

SELECT category, Count(ID), MONTH(aDate) AS month , YEAR(aDate) AS year, aDate, 
CONVERT(CHAR(4),aDate) , 100) + CONVERT(CHAR(4),aDate) , 120) as monthYear 
FROM table 
GROUP BY month, year, category 
+0

混淆使用convert語句作爲你的團隊的一部分,應該由分組沒有什麼區別月份,年份,類別和月份,年份,月份,類別 –

回答

1

你不需要使用整個日期,只是by子句

 SELECT category, 
     Count(ID), 
     MONTH(aDate) AS [month] , 
     YEAR(aDate) AS [year], 
     CONVERT(CHAR(4),aDate) , 100) + CONVERT(CHAR(4),aDate) , 120) as monthYear 
FROM table 
GROUP BY MONTH(aDate), 
     YEAR(aDate), 
     category, 
     CONVERT(CHAR(4),aDate) , 100) + CONVERT(CHAR(4),aDate) , 120) 
-1
SELECT MAX(category), Count(ID), MONTH(aDate) AS month , YEAR(aDate) AS year, MAX(aDate), 
CONVERT(CHAR(4),MAX(aDate)) , 100) + CONVERT(CHAR(4),MAX(aDate)) , 120) as monthYear 
FROM table 
GROUP BY MONTH(aDate), YEAR(aDate) 
+1

您應該解釋_why_您是否做出了所做的更改。 – Sam