sexta-feira, 8 de novembro de 2002

Relatórios com porcentagem Facil Facil!!!

Caros amigos, quem nunca teve problema para fazer relatorio com porcentagem fazendo um SQL só e sem trabalhar no ASP.

Ai vai: Vamos pensar aqui um pouco!!!
o SQL tem como gerar tabela temporario no select então vejamos... Se eu fizer dois SQLs em um só? Não consigo trazer o total geral e um total por seguimento ? Sim eu consigo... então vamos fazer isso separadamente.

Vamos usar por exemplo um concurso:

--selecionando o total geral de candidatos inscritos:
SELECT count(*) As TotalGeral from tabCandidato

resultado:
TotalGeral 
-----------
103

--selecionando o total por faculdade
SELECT Count(tC.IDTFACULDADE) as numFacul,
  tF.nomInstituicao, tF.sigUF
  FROM tabCandidato tC, tabFaculdade tF
 WHERE tC.idtFaculdade = tF.IdtFaculdade
 GROUP BY tC.IDTFACULDADE, nomInstituicao, sigUF


Resultado:
numFacul    nomInstituicao  sigUF
40              CENTRO UNIVERSITÁRIO DE BRASÍLIA -  DF
22              INSTITUTO DE CIÊNCIAS SOCIAIS - DF
15              UNIVERSIDADE CATÓLICA DE BRASILIA - DF


--se juntarmos os dois vamos ter ?
SELECT
 TotalGeral,
 numFacul,
 nomInstituicao,
 sigUF,
 ((100*numFacul)/TotalGeral) porcentagem
FROM
 ( SELECT Count(tC.IDTFACULDADE) as numFacul,
  tF.nomInstituicao, tF.sigUF
  FROM tabCandidato tC, tabFaculdade tF
 WHERE tC.idtFaculdade = tF.IdtFaculdade
 GROUP BY tC.IDTFACULDADE, nomInstituicao, sigUF ) tabRel, 
 ( SELECT count(*) As TotalGeral from tabCandidato) tabTotalGeral
 ORDER BY Porcentagem


Usando a regra de 3, vamos que o totalGeral é 100% o numFacul é o numero de pessoas por facul, então temos que (100*numFacul)/totalGeral = porcentagem (Pronto)!


Bem, qualquer coisa, só falar!!!
[]'s



Esta matéria foi postada originalmente no ASP4Developers por Allan Torres (site), que na época era "Analista de sistemas, trabalho com ASP, Oracle, PHP, C, Ferramentas Case e estudo Eng. Elétrica. Sempre as ordens! ]:)". Hoje, vai saber...

0 comentários: