deberia funcionar asi
   
Código PHP:
Ver original- public function reporte() { 
-     $sql = 'select c.nombrecarrera,  
-         sum(case when b.tiposubsidio = ' . 'total' . ' then 1 else 0 end)total, 
-         sum(case when b.tiposubsidio = ' . 'a' . ' then 1 else 0 end)tipo_a, 
-         sum(case when b.tiposubsidio = ' . 'b' . ' then 1 else 0 end)tipo_b, 
-         sum(case when b.tiposubsidio = ' . 'sin' . ' then 1 else 0 end)sin_subsidio,'; 
-     $sql.='from carreras as c, beneficiarios as b where c.idcarrera = b.idcarrera '; 
-     $sql.='group by c.idcarrera;'; 
-     return Zend_Db_Table::getDefaultAdapter()->query($sql); 
- } 
con consultas muy avanzadas siempre tengo problemas con el query builder :P, prefiero escribirlas directamente y ejecutarlas con 
query. Si no funciona dinos el error que te sale.