Consulta Mysql (count)

Vandong

Power Member
Boas,

Estou aqui de volta de uma consulta ao qual não consigo implementar o que quero. Vou explicar as tabelas envolvidas para perceberem melhor:

Tenhe 3 tabelas:

Tabela: Empresa (armazena os dados de uma empresa, tem id, nome, morada, etc..)
Tabela: ContactosEmpresa (armazena os contactos da empresa, está numa tabela porque uma empresa poderá ter vários contactos)
Tabela: Processo (armazena processos onde estão envolvidos as empresas)

Empresa - (PK)IDEmpresa, Nome, Morada,...
ContactoEmpresa - (PK)IDContacto, (PK,FK)IDEmpresa, nomePessoa, telf1, telf2, email
Processo - (PK)IDProcesso, Descricao, (FK)IDEmpresa, ....


Processo (N)--------(1)Empresa(1)-------(N)ContactoEmpresa


Agora a minha dificuldado:
Pretendia efectuar uma consulta que listasse todas as empresas e mostrar o nº de processos que está envolvido e fiz isto e funcionou perfeitamente:

Código:
SELECT E.IDEmpresa, E.Nome, E.Morada ,COUNT(P.IDProcesso) AS NumProcessos
FROM Empresa E
LEFT JOIN Processos P ON (P.IDEmpresa = E.IDEmpresa)
GROUP BY E.IDEmpresa
ORDER BY IDEmpresa

O problema é que eu quis que tambem fosse possivel na listagem pesquisar os contactos, então aí adicionei a tabela ContactoEmpresa à consulta e aí deu "barraca", uma vez que a coluna NumProcessos da consulta já não está correcto:

Código:
SELECT E.IDEmpresa, E.Nome, E.Morada, COUNT(P.IDProcesso) AS NumProcessos
FROM Empresa E
LEFT JOIN ContactosEmpresa CE ON (CE.IDEmpresa= E.IDEmpresa)
LEFT JOIN Processos P ON (P.IDEmpresa= E.IDEmpresa)
GROUP BY E.IDEmpresa
ORDER BY IDEmpresa

O que estará mal na 2º consulta? para o numProcessos não mostrar correctamente.
 
Última edição:
Back
Topo