求一条SQL语句:比较复杂的3表查询并更新到另外一个表中!
表A 
 user   usermoney   userzone   useraddress   userviocemoney      
 表B 
 user   usermoney   userzone      cardnum 
 张      100                        北京                  1000005 
 王      100                        郑州                  2000005 
 张      100                        北京                  1000006 
 王      100                        郑州                  2000006   
 表C 
 user   useraddress   userviocemoney 
 张         西直门                     30 
 张         西直门                     40 
 张         西直门                     30 
 王         人民路                     10 
 王         人民路                     20 
 王         人民路                     30   
 我要的结果应该如下: 
 表A 
 user   usermoney   userzone   useraddress   userviocemoney    
 张            100                     北京            西直门                     100(30+40+30) 
 王            100                     郑州            人民路                     60   (10+20+30) 
------解决方案--------------------insert into A   
 select t1.*,t2.useraddress,t2.userviocemoney from 
 (select distinct user,usermoney,userzone from b) t1, 
 (select user,useraddress,sum(userviocemoney) userviocemoney from c group by user,useraddress) t2 
 where t1.user = t2.user 
------解决方案--------------------insert A 
 select D.user,E.usermoney,E.userzone,D.useraddress,D.userviocemoney from 
 (  
 select distinct user,usermoney,userzone from B  
 )E, 
 ( 
 select user,useraddress,userviocemoney=sum(userviocemoney)from C group by user,useraddress 
 )D 
 where E.user = D.user
------解决方案--------------------create table A([user] varchar(10),usermoney int,userzone varchar(10),useraddress varchar(10),userviocemoney int) 
 create table B([user] varchar(10),usermoney int,userzone varchar(10),cardnum varchar(10)) 
 insert into B values( '张 ',  100,         '北京 ',       '1000005 ') 
 insert into B values( '王 ',  100,         '郑州 ',       '2000005 ') 
 insert into B values( '张 ',  100,         '北京 ',       '1000006 ') 
 insert into B values( '王 ',  100,         '郑州 ',       '2000006 ') 
 create table C([user] varchar(10),useraddress varchar(10),userviocemoney int) 
 insert into C values( '张 ',    '西直门 ',       30) 
 insert into C values( '张 ',    '西直门 ',       40) 
 insert into C values( '张 ',    '西直门 ',       30) 
 insert into C values( '王 ',    '人民路 ',       10) 
 insert into C values( '王 ',    '人民路 ',       20) 
 insert into C values( '王 ',    '人民路 ',       30) 
 go   
 insert into A   
 select t1.*,t2.useraddres