MySql数据库有一下三个表,记录学校,班级,学生的数据:学校表: 学校ID, 学校名称
班级表: 班级ID, 班级名称,学校ID
学生表: 学生ID, 学生名称,班级ID, 性别(0为女,1为男)要求按以下格式输出报表:学校名称 班级名称 男生总数 女生总数 男女总数
xxx xxx xxx xxx xxx请问如何写该SQL语句?? 偶在线等待,先谢谢了,^_^
班级表: 班级ID, 班级名称,学校ID
学生表: 学生ID, 学生名称,班级ID, 性别(0为女,1为男)要求按以下格式输出报表:学校名称 班级名称 男生总数 女生总数 男女总数
xxx xxx xxx xxx xxx请问如何写该SQL语句?? 偶在线等待,先谢谢了,^_^
where a.schoolid=b.schoolid and b.classid = c.classid
group by a.schoolname,b.classname,c.sex得到
xx学校 xx班机 0 12
xx学校 xx班机 1 2
再用JSP组织.或者再使用子查询,合并成一条记录.
--
大概就这个样子,手头没有MYSQL,无法给你测试.
from 学校表 c
left join
班级表 b
on c.学校ID=b.学校ID
left join
(
select sum(case 性别 when 0 then 1 else 0 end) as 男生总数,sum(case 性别 when 1 then 1 else 0 end) as 女生总数,count(*) as 男女总数,班级ID from 学生表
group by 班级ID
) a
on a.班级ID=b.班级ID这是SQL SERVER或者ORACLE的写法,可能MYSQL里CASE是2样的写法,但MYSQL肯定支持CASE这方法的