SQL 综合应用(1.创建临时表,为后续查询所用) 实例_(学生,课程表,选修表)

一.需要分析

查询各班各门课程的考试人数和及格人数,要求将查询结果显示在同一个表中,包括班级,课程号,考试人数和及格人数

二.实现步骤

--1.创建临时表 "#考试人数"
create table #考试人数(
班级 char(20),
课程号 char(3),
考试人数 int
)
--2.查询各班各门课程的考试人数,并保存在临时表"#考试人数"中
insert into #考试人数
select 班级,课程号,COUNT(选修.学号) as 考试人数
from 学生 inner join 选修 on 学生.学号=选修.学号
group by 班级,课程号
--3.创建临时表"#及格人数"
create table #及格人数(
班级 char(20),
课程号 char(3),
及格人数 int
)
--4.查询各班各门课程的及格人数,并保存在临时表"#及格人数"中
insert into #及格人数
select 班级,课程号,COUNT(选修.学号) as 及格人数
from 学生 inner join 选修 on 学生.学号=选修.学号
where 成绩>60
group by 班级,课程号
--5.将两个临时表进行左连接,得出最后的查询结果
select #考试人数.班级,#考试人数.课程号,考试人数,及格人数
from #考试人数 left join #及格人数 on #考试人数.班级=#及格人数.班级 and #考试人数.课程号=#及格人数.课程号

三.查询结果如图所示

清清软件园 http://sillysoft.taobao.com
原文地址:https://www.cnblogs.com/lqsilly/p/3051915.html