sql的一个高级查询问题
create table student(
  sno char(10) primary key, --学号
  sname nvarchar(20),	   --姓名
  ssex bit,		   --性别
  birthdate smalldatetime,  --出生日期
  sdept varchar(10)         --所属院系
)
create table course
( cno char(6) primary key,  --课程号
   cname nvarchar(20),       --课程名
   ccredit int,              --学分
   pcno char(6)              --先行课课程号
)
create table sc
(
    sno char(10),	--学号
    cno char(6),         --课程号
    grade int,           --课程成绩
    primary key (sno,cno)
这个是3张表
问题-查询各门课程的最高分的的学生情况,要求列出学号、姓名、课程号、课程名、该课程的最高分的成绩
怎么实现这个呢  我想了好长时间 不晓得如何实现
------解决方案--------------------
这样理解:
SQL code
--先是三表连接查询,这没什么复杂的,最正常的三表连接:
select a.sno,a.sname,c.cno,c.cname,b.grade
from student a inner join sc b on a.sno=b.sno 
inner join course c on c.cno=b.cno
--条件:因为要找的是该课程的最高分,因此,条件是:
--不存在这样一种情况,即sc表中没有cno与当前连接查询中的那个cno相同,
--且成绩大于当前查询那条记录的成绩的
where not exists(select 1 from sc where cno=b.cno and grade>b.grade)