1)创建学生档案表:学号,姓名,性别,出生日期,班级,入学日期
2)创建学生成绩表:学号,学科名,成绩,学期,考试日期
3)查出第三学期数学课平均分最高与最低的班级,最高与最低平均分是多少?
4)查出2004年入学的总人数
5)查出第二学期成绩语文课考试分最高的人的信息.
6)列出第四学期各班各科的平均分.
7)查出年龄小于20岁的人数
create table 学生档案表
(
学号 varchar(20),
姓名 varchar(20),
性别 varchar(10),
出生日期 datetime,
班级 varchar(20),
入学日期 datetime
)
create table 学生成绩表
(
学号 varchar(20),
学科名 varchar(20),
成绩 decimal(12,1),
学期 int,
考试日期 datetime
)
--3)查出第三学期数学课平均分最高与最低的班级,最高与最低平均分是多少?
select B.班级
,avg(A.成绩) as 平均分
,identity(int,1,1) as ID
into #
from 学生成绩表 A
join 学生档案表 B on A.学生档案表=B.学生档案表
where A.学科名='数学' and A.学期=3
group by B.班级
select t.班级
,t.平均分
from # t
where 平均分=(select min(平均分) from #)
or
平均分=(select max(平均分) from #)
--4)查出2004年入学的总人数
select count(1) from 学生档案表 where year(入学日期)=2004
--5)查出第二学期成绩语文课考试分最高的人的信息
select B.*
,A.成绩
from 学生成绩表 A
join 学生档案表 B on A.学生档案表=B.学生档案表
where A.学科名='语文'
and A.学期=2
and not exists(select 1
from 学生成绩表
where 学科名=A.学科名
and 成绩>A.成绩)
--6)列出第四学期各班各科的平均分.
select B.班级
,A.学科名
avg(成绩) as 平均分
from 学生成绩表 A
join 学生档案表 B on A.学生档案表=B.学生档案表
where A.学期=4
group by B.班级,A.学科名
--7)查出年龄小于20岁的人数
select count(1) from 学生档案表 where datediff(year,出生日期,getdate())<20
简单sql语句
最新推荐文章于 2023-04-16 23:51:52 发布