Code
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 myear,
sum(case when IsFirstSixMonths=0 then totalcome else 0 end) as '上半年',
sum(case when IsFirstSixMonths=1 then totalcome else 0 end) as '下半年'
from test
group by convert(char(4),Years,120)
结果如下: