3   张三  数学  78   id       b1        b2   a_id
    1    数学选择     70     3
    2    数学计算     15     3???

解决方案 »

  1.   

    create table tablea ([id] int,a1 varchar(10),a2 varchar(10),a3 int)
    insert into tablea([id],a1,a2) select 1,'zhang3','chinese'
    insert into tablea([id],a1,a2) select 2,'li4','math'
    insert into tablea([id],a1,a2) select 3,'zhang3','math'
    drop table tableacreate table tableb([id] int,b1 varchar(10),b2 int,a_id int)
    insert into tableb select 1,'math1',70,3
    insert into tableb select 2,'math2',15,3
    insert into tableb select 3,'math2',70,2
    insert into tableb select 4,'math1',6,2
    insert into tableb select 5,'chinese1',65,1
    insert into tableb select 6,'chinese2',20,1/*update*/
    update tablea set a3=(select sum(b2) from tableb  where tablea.id=a_id)/*the result*/
    select * from tablea
    id          a1         a2         a3          
    ----------- ---------- ---------- ----------- 
    1           zhang3     chinese    85
    2           li4        math       76
    3           zhang3     math       85
      

  2.   

    update a set a3=(select sum(b2) from b where b.a_id=a.id)
      

  3.   

    表A有问题,每一个学生不可能只有一科成绩.但如果id不代表学生的号,两个表的关联性就太差了
      

  4.   

    哦,对了,还有这个表的结构问题,呵呵,谢谢mylkzy(),这个数据是我临时写过来的,现用的那个太复杂我没有粘出来,只是为了说明这个意思的,献丑了,不好意思。同样感谢你。不过我结完分了,不好意思,只能口头谢谢了。