Ir para conteúdo
Fórum Script Brasil
  • 0

Soma de string em colunas de linha do mesmo id


jcamponez

Pergunta

Bom dia pessoal.Poderiam me ajudar em uma questão:

tenho uma tabela de votação com 5 colunas, onde coluna1=id da votação, coluna2=voto1, coluna3=voto2, coluna4=voto3, as colunas "voto" poderão conter as string "A Favor" ou "contra". Como somar quantos "A Favor" e quantos "Contra".

Tem como?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

O ideal seria haver duas tabelas. Uma para os dados da votação e outra para registrar os votos.

Votação(idVotação, demais dados)

Votos(idVotacao, voto).

A partir daqui seria muito mais fácil fazer relacionamentos de contagens, pois serviria a qualquer propósito de voto.

Na forma atual, a tabela votação está desnormalizada o que implica em mudar do código sempre que alterar o número de votantes.

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Cheguei a este resultado,  e é quase o que preciso.

(SELECT
Sum((voto1 = 'A Favor') + (voto2 = 'A Favor') + (voto3= 'A Favor') + (voto4= 'A Favor') + (voto5= 'A Favor')) AS FAVORAVEL
from votacao
WHERE
votacao.ptc_id = '116' )
UNION 
(SELECT
Sum((voto1 = 'Contra') + (voto2 = 'Contra') + (voto3= 'Contra') + (voto4= 'Contra') + (voto5= 'Contra')) AS CONTRARIOS
from votacao
WHERE
votacao.ptc_id = '116' )
 

Resultado:

FAVORAVEL
4
1

Gostaria que o resultado ficasse assim:

FAVORAVEL     -     CONTRARIOS
4                               1

No SELECT as cláusulas WHERE são identicas, teria como ter um único WHERE?

Grato.

Link para o comentário
Compartilhar em outros sites

  • 0
select sum(favoravel) as favoravel, sum(contrarios) as contrarios
from (SELECT 
Sum((voto1 = 'A Favor') + (voto2 = 'A Favor') + (voto3= 'A Favor') + (voto4= 'A Favor') + (voto5= 'A Favor')) AS FAVORAVEL,
0 as CONTRARIOS
from votacao
WHERE
votacao.ptc_id = '116' )
UNION 
(SELECT 0 as FAVORAVEL, 
Sum((voto1 = 'Contra') + (voto2 = 'Contra') + (voto3= 'Contra') + (voto4= 'Contra') + (voto5= 'Contra')) AS CONTRARIOS
from votacao
WHERE
votacao.ptc_id = '116' );

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...