create table tb(被保险人 varchar(10), 车牌号 varchar(10), 险种 varchar(10), 承保保费 int, 应收保费 int)
insert into tb values('吴飞', '鄂A9Q518', '交强险', 990 , 800 )
insert into tb values('黎华', '鄂ARB837', '交强险', 945 , 800 )
insert into tb values('申升', '鄂AEK718', '交强险', 945 , 800 )
insert into tb values('申升', '鄂AEK718', '商业险', 2000, 1750 )
insert into tb values('申升', '鄂AEK718', '车船税', 420 , 420 )
insert into tb values('小红', '鄂AKL448', '交强险', 945 , 800 )
insert into tb values('小红', '鄂AKL448', '商业险', 1500, 1200 )
select 被保险人,车牌号,
sum(case 险种 when '商业险' then 承保保费 else 0 end) '商业承保保费',
sum(case 险种 when '交强险' then 承保保费 else 0 end) '交强承保保费',
sum(case 险种 when '商业险' then 应收保费 else 0 end) '商业应收',
sum(case 险种 when '交强险' then 应收保费 else 0 end) '交强应收'
from tb
group by 被保险人,车牌号
order by 被保险人,车牌号
drop table tb
/*
被保险人 车牌号 商业承保保费 交强承保保费 商业应收 交强应收
---------- ---------- ----------- ----------- ----------- -----------
黎华 鄂ARB837 0 945 0 800
申升 鄂AEK718 2000 945 1750 800
吴飞 鄂A9Q518 0 990 0 800
小红 鄂AKL448 1500 945 1200 800
sql常用实例1
