2、
select sum(decode(科目代号,'1',成绩)),sum(decode(科目代号,'2',成绩)) from 
(select 成绩,科目代号 from 关联表 where 学号='20030405' and 科目代号 in (select 科目代号 from 科目表 where 科目名称 in ('语文','数学')))其它自已写吧

解决方案 »

  1.   

    oracle:1. 创建3个表的SQL表名和字段名都使用英文,自行设计。(20分)*/create table STUDENT(SID int,Sname varchar(10))
    insert student values(20030405,'WAN')
    insert student values(20030406,'NAM')
    create table COURCE (CID int,CNAME varchar(4))
    insert COURCE values(1,'语文')
    insert COURCE values(2,'数学')
    create table SC(SID int,CID int,SCORE int)
    insert sc values(20030405,       1      ,   90)
    insert sc values(20030405 ,      2    ,     67)
    insert sc values(20030406   ,    2   ,      46)
    insert sc values(20030406   ,   1  ,       89)
    2. 查询:学号为20030405的学生的语文、数学成绩,一行显示。(25分)select sum(decode(b.CNAME,'语文',成绩)) 语文,sum(decode(b.CNAME,'数学',成绩)) 数学 from SC a join COURCE b on a.CID=b.CID where a.SID=20030405 group by a.sid3. 查询: 学号为20030405的学生,最高分的科目(20分)select * from (select b.CNAME from SC a join COURCE b on a.CID=b.CID where a.SID=20030405 order by SCORE desc) where rownum=14. 查询:语文最高分学生姓名(15分)select * from (select c.sNAME from SC a join COURCE b on a.CID=b.CID join student c on a.sid=c.sid  where b.CNAME='语文' order by SCORE desc) where rownum=15. 查 询:每个学生的平均分(20分)select SID,avg(SCORE) SCORE from sc group by SID