我有两个表,表temp1:
user   count
AA     10
BB     71
CC     15
DD     66表temp2
user   count
BB      10
DD      34
EE      22
FF      11希望得到表3
user   count
AA      10
BB      81
CC      15
DD      100
EE      22
FF      11就是如果表1,表2不重复的内容就保留。重复的用户,count就需要累加。请高手帮忙!!!

解决方案 »

  1.   


    select user, sum(count) count from (
      select user, count from temp1 
      union all 
      select user, count from temp2)
    group by user
      

  2.   

    SELECT USER,SUM(COUNT) FROM (SELECT USER, COUNT
      FROM TEMP1
    UNION ALL
    SELECT USER, COUNT FROM TEMP2) GROUP BY USER
      

  3.   

    对,楼上的方法是正解。
    先union all组件一个表,然后在按user group by下就可以了
      

  4.   

    union all连接两个结果集合并一个结果集
    然后再分组统计
      

  5.   

    --首先,user和count是关键字,不能建表,所以用userName和counts代表楼主的两个字段
    select userName,sum(counts) from
    (select * from temp1
    union
    select * from temp2)
    group by userName
      

  6.   

    creat table tb3 as 
    select user, sum(count) count from (
      select user, count from temp1 
      union all 
      select user, count from temp2)
    group by user
      

  7.   

    方法:
    可以写一个小的存储过程。第一步:创建新表(select * tableA into tableC );
    第二步:创建存储过程(在存储过程写你的逻辑了)。
    建议:
    楼主可能对存储过程还不太熟悉,借此机会熟悉一下,写个简单的存储过程。(当然了也借机学习学习关键字‘union’)
      

  8.   

    方法:
    可以写一个小的存储过程。第一步:创建新表(select * tableA into tableC );
    第二步:创建存储过程(在存储过程写你的逻辑了)。
    建议:
    楼主可能对存储过程还不太熟悉,借此机会熟悉一下,写个简单的存储过程。(当然了也借机学习学习关键字‘union’)