2014-01-23 32 views
0

我有我的表中的两个语句,其做工精细分别是这样的:结合两种选择求和语句转换成一个

SELECT fee_earner, (SUM(fe_fees)) AS Total 
FROM fees 
GROUP BY fee_earner 
order by Total desc; 

SELECT supervisor, (SUM(sv_fees)) AS Total 
FROM fees 
GROUP BY supervisor 
order by Total desc; 

但也有一些情况下fee_earner和主管领域都有相同的人的数据,有没有办法将这两个语句合并为一个来获得总体总数?

+1

你能告诉一些示例数据和预期的结果?我没有看到如何将这些结合起来,成为所有情况下的单一结果。 – Barmar

回答

0

您可以使用union all此:

SELECT person, sum(fe_fees) as fe_fees, sum(sv_fees) as sv_fees, 
     (sum(fe_fees) + sum(sv_fees)) as total 
FROM ((select fee_earner as person, fe_fees as fe_fees, 0 as sv_fees, 'earner' as which 
     from fees 
    ) union all 
     (select supervisor as person, 0 as fe_fees, sv_fees as sv_fees, 'supervisor' as which 
     from fees 
    ) 
    ) t 
GROUP BY person 
order by Total desc; 
+0

这正是我正在寻找的,谢谢! –

0
select 
    fee_earner, SUM(fe_fees) as total, SUM(sv_fees) as total2, 
    SUM(fe_fees) + SUM(sv_fees) as wholeTotal 
from 
    fees 
group by 
    fee_earner, supervisor 
order by 
    Total desc;