有以下数据库student,库中的有三张表,分别为:s,c,sc表.
s表为学生信息表,c表为课程信息表,sc为学生成绩表。s表结构:sno(char(8))
         sname(char(8))
        age(tinyint)
        sex(char(2))
        cls(char(1))C表结构:cno(char(6))
        cname(varchar(16))SC表结构:sno(char(8))
         cno(char(6))
         grade(tinyint))存储过程实现:求出各门课程成绩均在85分以上的学生的班级,姓名,课程名及分数.由于会有多条记录符合条件,不知怎样将结果显示出来???

解决方案 »

  1.   

    select s.cls,s.sname,c.cname,grade 
    from sc a
    inner join c on c.cno=sc.cno
    inner join s on s.sno=sc.sno
    where not exists(select 1 from sc where sno=a.sno and cno=a.cno and grade<85)
      

  2.   

    select s.cls,s.sname,c.cname,grade 
    from sc a
    inner join c on c.cno=sc.cno
    inner join s on s.sno=sc.sno
    where not exists(select 1 from sc where sno=a.sno and cno=a.cno and grade > 85)
      

  3.   


    with m as
    (
    select * from sc a where not exists(select * from sc where sno=a.sno and grade<85)
    )
    select cls,sname,cname,grade from m join s on m.sno=s.sno join c on m.cno=c.cno
      

  4.   

    select s.cls,s.sname,c.cname,grade 
    from sc a
    inner join c on c.cno=sc.cno
    inner join s on s.sno=sc.sno
    where not exists(select 1 from sc where sno=a.sno and cno=a.cno and grade<85)楼主朋友,您给出的条件本身就是可能产生多条几率的呀,不知道您说的多条记录是怎么回事。