Obrigado pela resposta Denis, e belo nome rs !
Bom eu adaptei o seu exemplo e funcionou, mais ainda não consegui todos resultados.
Dessa maneira esta somando corretamente apenas os MEIOS, ou seja, mensalidade=4:
$sql_sum = "SELECT linhas.id, SUM(if(mensalidade=8,1,0)) as qt_inteiros, SUM(if(mensalidade=8, mensalidade,0))
as soma_inteiros, sum(if(mensalidade=4,1,0)) as qt_meios, SUM(if(mensalidade=4, mensalidade,0)) as soma_meios
FROM passageiro, linhas WHERE(passageiro.situacao='AT' OR passageiro.situacao='CO')
AND passageiro.linha_ida=linhas.id GROUP BY linhas.id";
RESULTADO:
E acrescentando passageiro.linha_volta=linhas.id antes de GROUP BY está somando corretamento apenas os INTEIROS, ou seja, mensalidade=8, e zerando os meios.
$sql_sum = "SELECT linhas.id, linhas.situacao, SUM(if(mensalidade=8,1,0)) as qt_inteiros, SUM(if(mensalidade=8, mensalidade,0))
as soma_inteiros, sum(if(mensalidade=4,1,0)) as qt_meios, SUM(if(mensalidade=4, mensalidade,0)) as soma_meios
FROM passageiro, linhas WHERE(passageiro.situacao='AT' OR passageiro.situacao='CO')
AND passageiro.linha_ida=linhas.id AND passageiro.linha_volta=linhas.id GROUP BY linhas.id";
RESULTADO:
O que faz este 8,1,0 cria uma espécie de ponteiro que zera o resultado na query para próxima soma?
Estou tentando vendo se consigo ajustar.
Obrigado pela ajuda e se alguém tiver mais alguma solução agradeço.