insert into 学生表 select SID,姓名 from 临时表
insert into 课程表 select CID,课程名 from 临时表
insert into 成绩表 select SID,CID,成绩 from 临时表

解决方案 »

  1.   

    直接生成表:
    select SID,姓名 into 学生表 from 临时表
    select CID,课程名 into 课程表 from 临时表
    select SID,CID,成绩 into 成绩表 from 临时表
      

  2.   

    临时表中没有sid,cid,成绩
      

  3.   

    不知道你的sid和cid是否是自动产生的还是取最大值,是什么类型的,我这里当做int来处理,varchar需要改一下语句
    如果只有语文和数学成绩的话insert into 课程表 select 1,'语文' union select 2,'数学'insert into 学生表(姓名) select 姓名 from 临时表declare @i int
    set @i=1
    update 学生表 set sid=@i , @i=@i+1 from 学生表insert into 成绩表 select  a.sid ,1, a.语文成绩
    from 临时表 a , 学生表 b
    where a.姓名=b.姓名 insert into 成绩表 select  a.sid ,2, a.数学成绩
    from 临时表 a , 学生表 b
    where a.姓名=b.姓名
      

  4.   

    sid和cid是标识列吧。
    insert 学生表 (姓名) select 姓名 from 临时表insert 课程表 (课程名) select '语文' union select '数学'insert 成绩表 
    select * 
    from ( select a.sid,b.cid,c.语文成绩
           from 学生表 a join 临时表 c on a.姓名=c.姓名,课程表 b
           where b.课程名='语文' and c.语文成绩 is not null
           union 
           select a.sid,b.cid,c.数学成绩
           from 学生表 a join 临时表 c on a.姓名=c.姓名,课程表 b
           where b.课程名='数学' and c.数学成绩 is not null
         ) t