表1:Table1 
ID Name Money Field_3 ... 
1  AA  1    www 
2  CC  2    eerr 
3  DD  3    TTT 
4  AA  4    DDW 
5  DD  5  ttwdq 
6  AA  6  dkfg 
........ 表2:Table1 
ID Name Money Field_4 ... 
1  EE  7  sdfsd 
2  AA  8    rter 
3  WW  9  dsfhds 
4  AA  10  sdkfhd 
5  CC  11  dskfdsa 
......... 
我想通过一个SQL语句实现下面的功能: 
在Table1中取Name和Money列,在Table2中也也取Name和Money列,这两个表取出的列形成一个新表,然后按照Name分组统计各人的Money总和,得到如下数据: 
Name Money 
AA  29 
CC  13 
DD  8 
EE  7 
WW  9 
.......... 
请问SQL语句如何写?  

解决方案 »

  1.   


    select Name,sum(money) as Total from (select name,money from Table1 union select name,money from Table2) group by Name
      

  2.   


     select s.[name],sum(s.[money])as [money]
     select isnull(a.[name],b.[name]) as [name],isnull(a.[money[,0)+isnull(b.[money[,0) as [money[
     From table1 a full join table2 b on a.[name]=b.[name])s
     group by s.[name]
      

  3.   


    select s.[name],sum(s.[money])as [money]
     select isnull(a.[name],b.[name]) as [name],isnull(a.[money[,0)+isnull(b.[money[,0) as [money]
     From table1 a full join table2 b on a.[name]=b.[name])s
     group by s.[name]
    建議不要用保留字做表字段.
      

  4.   

    select name,sum(money) money
    from
    (select name,nvl(money,0) money from table1
     union all
     select name,nvl(money,0) money from table2
    ) group by name用union all,用union会去除重复记录