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

(Resolvido) Consulta em duas tabelas com count e where


CleberRach

Pergunta

Boa noite, possuo duas tabelas, tabela Times (Times_Cod, Times_Nome) e tabela Apostas (Aposta_Cod, Aposta_TimeCod, Aposta_Resultado). Preciso fazer um select que retorne os dados de cada time com a soma de apostas com acerto (A). Se usar o seguinte código: 
(SELECT t.*, COUNT(a.Aposta_Resultado) from tbl_times t LEFT JOIN tbl_apostas a on t.Times_Cod = a.Aposta_TimeCod WHERE a.Aposta_Resultado = 'A' GROUP BY t.Times_Cod)
Retorna corretamente, porém, não exibe os times que não possuem nenhuma aposta correta. Se retirar a cláusula where, (SELECT t.*, COUNT(a.Aposta_Resultado) from tbl_times as t LEFT JOIN tbl_apostas a on t.Times_Cod = a.Aposta_TimeCod GROUP BY t.Times_Cod) retorna a soma de todos os resultados, acertos e erros.

Ou seja, preciso que retorne todos os times com a quantidade de acertos, caso não tenha nenhum acerto, que exiba quantidade zero ou mesmo null. 

Obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim:

SELECT t.*, SUM(IF(a.Aposta_Resultado = 'A', 1, 0)) AS Resultado
FROM tbl_times t 
LEFT JOIN tbl_apostas a on t.Times_Cod = a.Aposta_TimeCod 
GROUP BY t.Times_Cod

 

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Denis Courcy disse:

Tenta assim:


SELECT t.*, SUM(IF(a.Aposta_Resultado = 'A', 1, 0)) AS Resultado
FROM tbl_times t 
LEFT JOIN tbl_apostas a on t.Times_Cod = a.Aposta_TimeCod 
GROUP BY t.Times_Cod

 

Funcionou perfeitamente, muito obrigado.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...