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

帮忙写一个SQL语句。帮我写上注释。在线等。
做一个统计功能。

有两个表。一个是地区。一个是学生表。
  city student

显示所有地区。每个地区学生人数。每个地区开通1号功能的人数,开通2号功能的人数。登陆过得人数。
  sid stu_num a1_num a2_num log_num


求救。

------解决方案--------------------
SQL code
select c.sid,sum(case when 功能 = 1 then 1 else 0 end ) as '开通1号功能的人数',
sum(case when 功能 = 2 then 1 else 0 end ) as '开通2号功能的人数',
count(s.sid) as '登录人数'
from city c
left join student s on c.sid= s.sid
group by c.sid

------解决方案--------------------
SELECT 城市表.Ssdm Sid,
COUNT(学生表.Sname) Stu_Num,
SUM(CASE
WHEN 字段开通1号 THEN 1 ELSE 0
END) A1_Num,
SUM(CASE
WHEN 字段开通2号 THEN 1 ELSE 0
END) A2_Num,
COUNT(学生表.Loginnum) Log_Num
FROM 学生表, 城市表
 WHERE 城市表.Ssdm = 学生表.Ssdm
 GROUP BY 城市表.Ssdm