第一条的问题是:如果记录数为0时,就不显示那科目
第二条的问题是:如果记录数为0时,却显示那科目的记录数为1
SQL code
--1
select a.科目号,a.科目名,count(*) from 科目表 a inner join 学生成绩表 b on a.科目号=b.科目号
group by a.科目号,a.科目名 having count(1)>0
--2
select a.科目号,a.科目名,case when count(*)=0 then 1 else count(*) end as 该科目人数
from 科目表 a left join 学生成绩表 b on a.科目号=b.科目号
group by a.科目号,a.科目名
http://topic.youkuaiyun.com/u/20090428/13/3cf3ec58-f9ab-407f-8235-50229a964094.html