2013/10/14, Ari Lima <[email protected]>: > Boa tarde, pessoal. > > Gostaria de ajuda para gerar uma SQL que calcule as porcentagens de > candidatos aprovados. Eu tentei assim: > > SELECT cfc.razao_social, count(ac.id) AS candidatos, > count((SELECT rc.id > FROM > fluxo_pd.resultado_candidato as rec > WHERE rec.codg_resultado > = 1 AND rec.fk_agendamento_candidato = ac.id)) > AS aprovados, > round((count((SELECT rc.id > FROM > fluxo_pd.resultado_candidato as rec > WHERE > rec.codg_resultado = 1 AND rec.fk_agendamento_candidato = ac.id))) / > count(ac.id)*100) as percent > FROM info_detran.cfc as cfc > INNER JOIN fluxo_pd.agendamento_candidato AS ac > ON cfc.id = ac.fk_cfc > INNER JOIN fluxo_pd.resultado_candidato AS rc > ON ac.id = rc.fk_agendamento_candidato > INNER JOIN fluxo_pd.banca AS ba > ON ba.id = ac.fk_banca > INNER JOIN corporativo.endereco AS ed > ON ed.id = cfc.fk_endereco > INNER JOIN corporativo.localidade AS lo > ON lo.id = ed.fk_localidade > WHERE rc.codg_resultado IN(1,2) > AND ba.data BETWEEN '2013-01-01' AND '2013-06-01' > AND lo.nome = 'SAO_PAULO' > GROUP BY cfc.razao_social, lo.nome > > > > Mas os resultados nao estao vindo certos. Alguém pode por favor me ajudar? >
Você tem certeza de que nestes selects: count((SELECT rc.id FROM fluxo_pd.resultado_candidato as rec WHERE rec.codg_resultado = 1 AND rec.fk_agendamento_candidato = ac.id)) AS aprovados, e round((count((SELECT rc.id FROM fluxo_pd.resultado_candidato as rec WHERE rec.codg_resultado = 1 AND rec.fk_agendamento_candidato = ac.id))) / count(ac.id)*100) as percent O campo sendo recuperado é realmente rc.id? Por acaso não seria rec.id? Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
