CASE WHEN 的使用

数据如下:
id 设备 金额
1 笔记本 4500
2 打印机 600
3 数码象机 2100
4 空调 1300
5 台式电脑 3300
6 东芝复印机 5000
7 显示器 1100

要求取得的数据如下:
金额结构 数量 总金额
1000元以下 1 600
1000-2000 2 3200
2000-3000 1 2100
3000以上 3 12800

 

if object_id('[tb]'is not null drop table [tb]
create table [tb]([id] int,[设备] varchar(10),[金额] int)
insert [tb]
select 1,'笔记本',4500 union all
select 2,'打印机',600 union all
select 3,'数码象机',2100 union all
select 4,'空调',1300 union all
select 5,'台式电脑',3300 union all
select 6,'东芝复印机',5000 union all
select 7,'显示器',1100

select 金额结构,
count(1as 数量,
sum(金额) as 总金额
from (select case when 金额 > 3000 then '3000以上' 
                  
when 金额 > 2000 and 金额 <=3000 then '2000-3000' 
                  
when 金额 > 1000 and 金额 <=2000 then '1000-2000' 
                  
else '1000 元以下' end as 金额结构,* from [tb]) a
group by 金额结构 order by sum(金额)

 

 

posted @ 2010-01-26 00:15  一 点  阅读(108)  评论(0编辑  收藏  举报