none
SOMA - CONTAR - MOSTRA PORCENTAGEM DO CAMPO TABELA

    Question

  • Eu não consigo mostrar a porcentagem de resultado da votação onde campo da tabela tem resultados SIM e NÃO, como faço para obter a % da soma e contagem
    Friday, August 23, 2013 7:13 PM

Answers

  •  "Contar - Somar", eis outra possibilidade de se obter a informação desejada. O código abaixo funciona inclusive com vários outros valores, além de Sim/Não. Em uma única passada em Enquete obtém as acumulações necessárias, o que o torna de execução rápida.

    SELECT Votos, count(*) as Qtd
      into #SimNao
      from Enquete 
      group by Votos;
    
    SELECT Votos, Qtd as [Quantidade], (select sum(Qtd) from #SimNao) as Total,
    (cast(Qtd as real) / (select sum(Qtd) from #SimNao) * 100) as Percentual from #SimNao; drop table #SimNao;

     


    Belo Horizonte, MG - Brasil

    Saturday, August 24, 2013 10:06 AM
  • Deste jeito:

    Select 
    (select count(*) from tabela) as total,
    (select count(*) from tabela where campo='SIM') as SIM,
    (select count(*) from tabela where campo='NAO') as NAO,
    (select count(*) from tabela where campo='SIM')/(select count(*) from tabela)  as Percentual_SIM,
    (select count(*) from tabela where campo='NAO')/(select count(*) from tabela)  as Percentual_NAO
    
    
    
     

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    Friday, August 23, 2013 7:25 PM

All replies

  • Deste jeito:

    Select 
    (select count(*) from tabela) as total,
    (select count(*) from tabela where campo='SIM') as SIM,
    (select count(*) from tabela where campo='NAO') as NAO,
    (select count(*) from tabela where campo='SIM')/(select count(*) from tabela)  as Percentual_SIM,
    (select count(*) from tabela where campo='NAO')/(select count(*) from tabela)  as Percentual_NAO
    
    
    
     

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    Friday, August 23, 2013 7:25 PM
  • Amigo,

    Tem como você mandar a estrutura da sua tabela?


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    Friday, August 23, 2013 7:31 PM
  • Olha assim eu consigo mostrar quantos votos SIM código abaixo:

    $query_Recordset1 = "SELECT *, COUNT(votos) as votos FROM enquete WHERE votos= 'Sim'";

    Minha tabela só tem 2 campos um é ID e o outro é VOTOS.
    Friday, August 23, 2013 7:37 PM
  • Faça isso que funciona:

    Select 
    (select count(*) from enquete) as total,
    (select count(*) from enquete where votos='SIM') as SIM,
    (select count(*) from enquete where votos='NAO') as NAO,
    (select count(*) from enquete where votos='SIM')/(select count(*) from enquete)  as Percentual_SIM,
    (select count(*) from enquete where votos='NAO')/(select count(*) from enquete)  as Percentual_NAO
    
    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    Friday, August 23, 2013 7:41 PM
  • Me informa um erro, eu estou usando DW e arrasco o recordset, por exemplo não uso mostra o echo assim ex: $ echo "votos";
    Friday, August 23, 2013 7:57 PM
  • Poste o erro aqui.

    se vc disse que com isso vc consegue mostrar o total de sim:

    $query_Recordset1 = "SELECT *, COUNT(votos) as votos FROM enquete WHERE votos= 'Sim'";

    entao isso deveria funcionar:

    $query_Recordset1 = "Select (select count(*) from enquete) as total,(select count(*) from enquete where votos='SIM') as SIM,(select count(*) from enquete where votos='NAO') as NAO,(select count(*) from enquete where votos='SIM')/(select count(*) from enquete)  as Percentual_SIM,(select count(*) from enquete where votos='NAO')/(select count(*) from enquete)  as Percentual_NAO";

    Eu nao entendi que tecnologia vc est autilizando... PHP?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée




    Friday, August 23, 2013 8:00 PM
  • Acho que o meu problema é que tenho mais de um recordset assim que eu organizar aqui te retorno
    • Proposed as answer by Lucas Vandor Friday, August 23, 2013 9:08 PM
    • Unproposed as answer by Lucas Vandor Friday, August 23, 2013 9:08 PM
    Friday, August 23, 2013 8:04 PM
  • DECLARE @TOTAL AS INT
    DECLARE @SIM AS INT
    DECLARE @NAO AS INT
    
    SET @TOTAL = (select count(*) from enquete)
    SET @SIM = (select count(*) from enquete where votos='SIM')
    SET @NAO = (select count(*) from enquete where votos='NAO')
    
    Select @TOTAL as total, @SIM as SIM, @NAO as NAO, (@SIM/@TOTAL) as Percentual_SIM, (@NAO/@TOTAL) as Percentual_NAO
    


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    Friday, August 23, 2013 9:08 PM
  •  "Contar - Somar", eis outra possibilidade de se obter a informação desejada. O código abaixo funciona inclusive com vários outros valores, além de Sim/Não. Em uma única passada em Enquete obtém as acumulações necessárias, o que o torna de execução rápida.

    SELECT Votos, count(*) as Qtd
      into #SimNao
      from Enquete 
      group by Votos;
    
    SELECT Votos, Qtd as [Quantidade], (select sum(Qtd) from #SimNao) as Total,
    (cast(Qtd as real) / (select sum(Qtd) from #SimNao) * 100) as Percentual from #SimNao; drop table #SimNao;

     


    Belo Horizonte, MG - Brasil

    Saturday, August 24, 2013 10:06 AM