mssql CASE,GROUP BY用法

时间:2022-06-16 03:46:13

代码如下:


--create database dbTemp 
use dbTemp 
create table test 

Pid int identity(1,1) not null primary key, 
Years datetime, 
IsFirstSixMonths int default(0), --0表示上半年1表示下半年-- 
TotalCome int 

insert test 
select '2007-1-1',0,50 
union 
select '2007-3-1',0,60 
union 
select '2007-12-1',1,80 
union 
select '2008-1-1',0,100 
union 
select '2008-12-1',1,100 

select * from test 

select convert(char(4),Years,120) as 'year', 
IsFirstSixMonths=case when IsFirstSixMonths=0 then '上半年' when IsFirstSixMonths=1 then '下半年' END , 
sum(totalcome) as 'sum' from test 
group by IsFirstSixMonths,convert(char(4),Years,120) 


select convert(char(4),Years,120) as 'year', 
IsFirstSixMonths=case when IsFirstSixMonths=0 then '上半年' ELSE '下半年' END , 
sum(totalcome) as 'sum' from test 
group by IsFirstSixMonths,convert(char(4),Years,120) 

--DROP DATABASE dbtemp


结果如下: 

复制代码代码如下:


2007 上半年 110 
2007 下半年 80 
2008 上半年 100 
2008 下半年 100