日期:2014-05-17  浏览次数:20505 次

求助,SQL根据车数分级
根据一个用户信息表表,
 CREATE TABLE userinfo
(uid int IDENTITY (1, 1) not null,
userid varchar(11) null,
username varchar(200) null,
usermobile varchar(20) null,
cph varchar(20) null,
sxrname varchar(50) null,
sxrmobile varchar(20) null,
nextbydate datetime null,
nextbylc decimal(10) null,
gcdate datetime null,VIN varchar(30) null,
cartype varchar(30) null,
userpy varchar(100) null PRIMARY KEY (uid)
)
想根据username和usermobile相同的为客户分组统计有多少车(CPH),车数大于等于20台为A类,10-19为B类,3-9为C类,
想要 的结果为 
A类 数量,客户名称,数量
B类 数量,客户名称,数量
C类 数量,客户名称,数量
这样的结果..怎么能实现啊

------解决方案--------------------
SELECT 
CASE 
WHEN  b.amount>20 THEN 'A'
WHEN b.amount>10 AND  b.amount<19 THEN 'B'
WHEN b.amount>3 AND  b.amount<9 THEN 'C' 
ELSE
'无等级'
END
,b.username,b.usermobile,b.amount
FROM(SELECT u.username ,u.usermobile, COUNT(DISTINCT(cph)) AS amount FROM userinfo u
GROUP BY u.username ,u.usermobile)b