刚才的求助没写完整,实际的需求是这样的:有三张表tbp,tpt,tpu通过主外键关联,现在想根据uname分组,对money求和,如果uname和tname值都相同,则只计算一次。我写的是:  
 
select  tbu.uname,sum(tbp.money)  from  tbp  inner  join  tpt  on  tbp.tid=tbt.tid  inner  join  tbu  on  tbp.uid=tbu.uid  group  by  tbu.uname  
 
但是这样显然是重复计算了行。  
 
tbp  
 
pid    tid  tname      uid        uname          money    
1        1        A              1            aa            4.5  
2        2        B              1            aa            4            
3        2        B              1            aa            4              
4        2        B              2            bb            4  
5        3        C              2            bb            5.5  
6        3        C              2            bb            5.5  
7        4        D              2            bb            4  
 
tbt  
 
tid    uname  
1          A  
2          B  
3          C    
4          D  
5          E  
 
 
uid      uname  
1            aa  
2            bb    
3            cc    最后要求的结果是uname   sum(money)aa      4.5+4=9.5
bb      4+4.5+4=13.5