将两个选择和语句合并为一个

时间:2014-01-23 00:55:28

标签: mysql sql

我的表格中有两个语句可以像这样单独使用:

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和supervisor字段与数据具有相同的人物,是否有办法将这两个语句合并为一个以获得总数?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;