0

我正在处理一个查询来计算给定月份和年份的结果数量。但是,我还需要使用完整日期来创建月份年份字符串。我知道 select 子句中的任何内容也必须在 group by 子句中。但是,我只想按月和年分组以获得正确的计数结果。我该如何解决这个问题?

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
4

2 回答 2

1

您不需要使用整个日期,只需将 convert 语句用作 group 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)
于 2012-09-21T22:11:46.530 回答
-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)
于 2012-09-22T04:04:52.507 回答