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

Responder a