你加一层查询应该可以吧,
select count(*) ,sum(sum1),sum(补助金额)
from
(select bc.outid,bc.name,sum(t.opfare) sum1, case when sum(t.opfare) >= 50 then 100 else sum(t.opfare) * 2 end as 补助金额 from rec_cust_acc t,base_customers bc where t.acccode = 101 and t.customerid = bc.customerid and t.opdt between to_date(concat('2010-08-01',' 00:00:00'),'yyyy-mm-dd hh24:mi:ss') and to_date(concat('2010-12-06',' 23:59:59'),'yyyy-mm-dd hh24:mi:ss') group by bc.outid,bc.name ) a
不知道有没有语法错误,没测试,