数据表 A 记录的是长期来的得分情况列: 学员编号   得分   日期      1         80     2011.7
      2         90     2011.7
      3         100    2011.7
      1         85     2011.8
      2         95     2011.8
      3         100    2011.8我现在是想把M里记录的学员总分数写入到B数据表,B内已经有所以学员的编号, 根据A里的记录,以学员编号为条件 写入到各自的总成绩数据表里。  请教一下 这样要怎么用?   

解决方案 »

  1.   

    update B
    set 得分=A.得分
    from (select 学员编号,sum(得分) as 得分 from M group by 学员编号) as A
    inner join B on A.学员编号=B.学员编号
      

  2.   

    try:
    update t1 set 总分=sum(t2.总分) from B t1 inner join A t2 on t1.学员编号=t2.学员编号 group by t1.学员编号
      

  3.   

    update t1 set 总分=sum(t2.得分) from B t1 inner join A t2 on t1.学员编号=t2.学员编号 group by t1.学员编号
      

  4.   

    insert into b(学员编号 , 总分) select 学员编号 , sum(得分)  from a group by 学员编号
      

  5.   

    --如果表B不存在任何学员编号的记录,则直接插入。
    insert into b(学员编号 , 总分) select 学员编号 , sum(得分)  from a group by 学员编号--如果表B存在所有学员编号的记录,则
    update b set 总分 = (select sum(得分) from a where a.学员编号 = t.学员编号 ) from b t--如果表B存在部分所有学员编号的记录,则先更新部分学员的,然后再插入不存在的。
    update b set 总分 = (select sum(得分) from a where a.学员编号 = t.学员编号 ) from b t
    insert into b(学员编号 , 总分) select 学员编号 , sum(得分)  from a where 学员编号 not in (select 学员编号 from b) group by 学员编号
      

  6.   

    update
     a 
    set
     得分=b.得分
    from
     a,(select 学员编号,sum(得分) as 得分 from M group by 学员编号)b  
    on
     a.学员编号=b.学员编号
      

  7.   

    update B set 总成绩=(select sum(得分) from A where A.学员编号=B.学员编号)