Welcome

首页 / 数据库 / SQLServer / mssql CASE,GROUP BY用法

复制代码 代码如下:
--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