求一按月份统计 SQL语句
CREATE TABLE [test] (
[id] [bigint] IDENTITY (1, 1) NOT NULL ,
[Cdatetime] [datetime] NULL ,
[Cnum] [int] NULL ,
) ON [PRIMARY]
insert into test
select '2012-12-27',1 union all
select '2013-01-01',2 union all
select '2013-02-01',3 union all
select '2013-03-01', 4 union all
select '2013-04-01', 5 union all
select '2013-05-01', 6
GO
现在对测试数据进行按月份统计,统计条件:上月22号到本月23号为一个月(2012-12-27属于2013年1月范围,依此类推)
想得到这样的结果
月份 数量
1月份 3
2月份 3
3月份 4
4月份 5
5月份 6
SQL select 测试 统计
[解决办法]
SELECT
CONVERT(VARCHAR, MONTH(CASE WHEN DAY(cdatetime) > 23
THEN DATEADD(mm, 1, cdatetime)
ELSE cdatetime
END)) + '月份' AS 月份 ,
SUM(cnum) AS 数量
FROM dbo.TEST
GROUP BY
CONVERT(VARCHAR, MONTH(CASE WHEN DAY(cdatetime) > 23
THEN DATEADD(mm, 1, cdatetime)
ELSE cdatetime
END))
/*月份数量
1月份3
2月份3
3月份4
4月份5
5月份6*/