表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)

解决方案 »

  1.   

    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
      

  2.   

    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
      

  3.   

    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)
    goinsert 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]select * from Adrop table A,B,C/*
    user       usermoney   userzone   useraddress userviocemoney 
    ---------- ----------- ---------- ----------- -------------- 
    王          100         郑州         人民路         60
    张          100         北京         西直门         100
    (所影响的行数为 2 行)
    */
      

  4.   

    select a.user,a.usermoney,a.userzone,b.useraddress,userviocemoney=sum(b.userviocemoney)
    from 表B a join 表C b
    on a.user=b.user
    group by a.a.user,a.usermoney,a.userzone,b.useraddress
      

  5.   

    insert into 表A
    select a.*,b.useraddress,b.userviocemoney from
    (select [user],usermoney,userzone from 表B group by [user],usermoney,userzone) a
    join
    (select [user],useraddress,userviocemoney=sum(userviocemoney) from 表C group by [user],useraddress) b
    on a.[user]=b.[user]