你加一层查询应该可以吧,
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 endas 补助金额 from rec_cust_acc t,base_customers bc where t.acccode = 101 and t.customerid = bc.customerid and t.opdt between to_date(concat('-08-01',' 00:00:00'),'yyyy-mm-dd hh24:mi:ss') and to_date(concat('-12-06',' 23:59:59'),'yyyy-mm-dd hh24:mi:ss') group by bc.outid,bc.name) a
不知道有没有语法错误,没测试,