根据B表的汇总结果更新A表里的数据,A.username=B.username
sql语句实现:根据B表的汇总结果更新A表里的数据,A.username=B.username   
 如: 
 TableA            username是唯一的 
 id   username   income 
 1         user1            20 
 2         user2            20 
 3         user3            30 
 4         user4            40 
 5         user5            50   
 TableB 
 id   username   incomeMonth 
 1         user1            20 
 2         user1            20 
 3         user1            30 
 4         user3            40 
 5         user3            50 
 6         user3            40 
 7         user3            50   
 我想实现, 
 TableB根据username汇总的incomeMonth 
 更新到TableA里相应的income里, 
 两表有这样的关系 
 TableB.username=TableA.username     
------解决方案--------------------update a set income = b.sumInMonth  
 from TableA  a  
 join (select  username ,sum(incomeMonth) as sumInMonth from TableB group by username ) b on a.username = b.username
------解决方案--------------------update TableA 
 set incomemonth = b.incomemonth 
 from tableA a,(select username , sum(incomemonth) as incomemonth from tableb group by username) b 
 where a.username = b.username
------解决方案--------------------create table TableA( 
   id int identity(1,1), 
   username  varchar(10), 
   income   int 
 ) 
 insert TableA 
 select  'user1 ',20 union all 
 select  'user2 ',20 union all 
 select  'user3 ',30 union all 
 select  'user4 ',40 union all 
 select  'user5 ',50   
 create table TableB( 
  id  int identity(1,1), 
  username varchar(10), 
  incomeMonth int 
 ) 
 insert TableB 
 select  'user1 ',20 union all 
 select  'user1 ',20 union all 
 select  'user1 ',30 union all 
 select  'user3 ',40 union all 
 select  'user3 ',50 union all 
 select  'user3 ',40 union all 
 select  'user3 ',50   
 我没事把表建好测试了一下,xiaoku(野蛮人(^v^)) 和dawugui(潇洒老乌龟)的都正确, 
 老乌龟的有个笔误 set incomemonth = b.incomemonth 应该是  
 set income = b.incomemonth,呵呵
------解决方案--------------------create table TableA(id int,username varchar(10),income int) 
 insert TableA select 1,    'user1 ',    20 
 union all select 2,    'user2 ',    20 
 union all select 3,    'user3 ',    30 
 union all select 4,    'user4 ',    40 
 union all select 5,    'user5 ',    50   
 create table TableB(id int,username varchar(10),incomeMonth int) 
 insert TableB select 1,    'user1 ',    20 
 union all select 2,    'user1 ',    20 
 union all select 3,    'user1 ',    30 
 union all select 4,    'user3 ',    40 
 union all select 5,    'user3 ',    50 
 union all select 6,    'user3 ',    40 
 union all select 7,    'user3 ',    50 
 --就是不一样 
 update tablea  
 set income=isnull((select sum(incomeMonth) from tableb b where b.username=a.username),0) 
 FROM tablea a, tableb b