Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal!
Estou precisando fazer uma consulta usando duas tabelas, mas não tenho a menor idéia de como fazer isso. Poderiam me ajudar?
Tenho uma tabela chamada candidatos, que possui o seguintes campos:
A outra tabela se chama sorteados e possui os campos abaixo:
Quando o candidato é sorteado preencho o campo codigocandidato da tabela sorteados com o campo codigo da tabela candidatos. No campo bairroimovel seleciono o bairro para onde ele foi sorteado.
Preciso fazer uma consulta que me dê a quantidade de pessoas beneficiadas por bairro (campo bairroimovel da tabela sorteados), ou seja, teria que verificar se o candidato está cadastrado na tabela sorteados, depois somar os campos quantmenores e quantadultos da tabela candidatos e em seguida fazer um soma geral por bairro (campo bairroimovel)
O relatório ficaria assim:
Bairro 1: xxx beneficiados
Bairro 2: xxx beneficiados
Bairro 3: xxx beneficiados
Bairro 4: xxx beneficiados
Bairro 5: xxx beneficiados
Poderiam me ajudar?
Desde já agradeço a ajuda de vocês.
Motta, muito obrigado pela sua ajuda.
Neste caso a consulta mostra o total dos sorteados para cada bairro. Eu preciso que o total dos sorteados seja a soma dos campos quantmenores e quantadultos da tabela candidatos. Como poderia fazer isso?
select bairroimovel, sum(quantmenores) quantmenores ,sum(quantadultos) quantadultos
from sorteados , candidatos
where sorteados.codigocandidato , candidatos.codigo
group by bairroimovel
Motta, muito obrigado pela ajuda. Como optei em fazer as consultas separadamente, elas ficaram assim:
SELECT s.bairroimovel,
SUM(c.quantmenores) AS Total
FROM candidatos c
INNER JOIN sorteados s
ON c.codigo = s.codigocandidato
GROUP BY s.bairroimovel
SELECT s.bairroimovel,
SUM(c.quantadultos) AS Total
FROM candidatos c
INNER JOIN sorteados s
ON c.codigo = s.codigocandidato
GROUP BY s.bairroimovel
Qual a diferença ?
Nenhuma! Tenho muito que aprender ainda. Poderia fazer a mesma consulta tudo de uma vez.
SELECT s.bairroimovel,
SUM(c.quantadultos) AS TotalAdultos,
SUM(c.quantmenores) AS TotalMenores
FROM candidatos c
INNER JOIN sorteados s
ON c.codigo = s.codigocandidato
GROUP BY s.bairroimovel
Cuidado com este tipo de soma , são duas diferentes se uma tabela tiver registros a mais que outro vai gerar um produto cartesiano) indevido e somas erradas.
Valeu Motta! Muito obrigado pelas dicas.
sorteados e possui os campos abaixo:
use GROUP BY
select bairroimovel , count(codigocandidato) qtd
from sorteados
group by bairroimovel