当前位置:数据库 > SQLServer >>

sql server的查询求指教

这样三张表。 学生(ID,姓名) 课程(ID,老师,课程名) 关系分数表(学生ID,课程ID,分数) 对应关系自己应该能看出来吧 问题是: 1.查询出有两门或以上不及格课程的学生的姓名,和这些学生3门课程的平均分 2.查询出有两个学生以上参与的课程的名字,和这门课程的平均分
答案:1:


select t1.sid,t2.sname,t3.avg_scroce
from 学生 t1,
(select sid,count(scroce) from 关系分数表 where scroce<60  group by sid having count(scroce)>=2) t2,
(select sid,avg(scroce)as avg_scroce  from 关系分数表 group by sid) t3
where t1.sid=t2.sid
and t1.sid=t3.sid


2:
select t1.ctype t2.avg_scroce
from 课程 t1
(select cid,avg(scroce) as avg_scroce  from 关系分数表 group by cid) t2,
(select cid,count(sid) from ttt_po group by cid having count(sid)>=2) t3
where t1.cid=t2.cid
and t1.cid=t3.cid
其他:拿分走人 1、select a.sname,avg(scroce)
from (select  a.sname,a.sid
from  student a,scroce b
where a.sid=b.sid 
  and scroce<60
  having count(scroce)>=2
group by a.sname,a.sid) a,
scroce b
where a.sid=b.sid
group by  a.sname
 
2、
select a.ctype,avg(scroce)
from (select a.cid,a.ctype
from  classtable a,scroce b
where a.cid=b.cid 
  having count(b.sid)>=2
group by a.cid,a.ctype) a,
scroce b
where a.cid=b.cid
group by a.ctype

上一个:sql server 2000企业版怎么安装
下一个:为了快速查看SQL Server的版本,通过命令行输入命令符:sqlcmd –E –Q “SELECT @@VERSION;”

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,