22,210
社区成员
发帖
与我相关
我的任务
分享
SELECT p.科目号,p.科目名, 人数 = ISNULL(j.人数, 0)
FROM 科目表 p
LEFT JOIN
(
SELECT 科目号, COUNT(DISTINCT 学号) 人数
FROM 学生成绩表
GROUP BY 科目号
) j
ON j.科目号 = p.科目号
ORDER BY 科目号
SELECT 科目号,科目名, 人数 = ISNULL(人数, 0)
FROM 科目表 p
LEFT JOIN
(
SELECT 科目号, COUNT(DISTINCT 学号) 人数
FROM 学生成绩表
GROUP BY 科目号
) j
ON j.科目号 = p.科目号
ORDER BY 科目号
select a.科目号,a.科目名,count(b.科目号) from 科目表 a left join 学生成绩表 b on a.科目号=b.科目号 group by a.科目号,a.科目名
/*
1 0
2 0
3 0
*/
--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.科目名