Consulta com erro duplicado.
Boa tarde, sou novo no mundo do SQL, estou realizando uns cursos e paralelamente estou realizando consultas no banco. Preciso criar um relatório com as tabelas abaixo, mas ao realizar a consulta aparece inúmeras vezes a mesma pessoa com todas as seções registradas no sistema.
SELECT PPESSOA.NOME, PPESSOA.DTNASCIMENTO, PPESSOA.EMAIL, PFUNC.CODSECAO, PFUNC.DATAADMISSAO, PFUNC.CODSECAO, PSECAO.DESCRICAO,
PFUNC.CODSITUACAO
FROM PPESSOA, PFUNC, PSECAO
WHERE PFUNC.CODPESSOA = PPESSOA.CODIGO AND PFUNC.CODSITUACAO != ''D''
SELECT PPESSOA.NOME, PPESSOA.DTNASCIMENTO, PPESSOA.EMAIL, PFUNC.CODSECAO, PFUNC.DATAADMISSAO, PFUNC.CODSECAO, PSECAO.DESCRICAO,
PFUNC.CODSITUACAO
FROM PPESSOA, PFUNC, PSECAO
WHERE PFUNC.CODPESSOA = PPESSOA.CODIGO AND PFUNC.CODSITUACAO != ''D''
Luiz Roberto
Curtidas 0
Respostas
Emerson Nascimento
18/02/2021
você precisa relacionar todas as tabelas explicitamente. no caso você não fez qualquer menção à tabela PSECAO.
colocando de uma forma mais simples de entender:
colocando de uma forma mais simples de entender:
SELECT PPESSOA.NOME, PPESSOA.DTNASCIMENTO, PPESSOA.EMAIL, PFUNC.CODSECAO, PFUNC.DATAADMISSAO, PFUNC.CODSECAO, PSECAO.DESCRICAO, PFUNC.CODSITUACAO FROM PPESSOA INNER JOIN PFUNC ON PFUNC.CODPESSOA = PPESSOA.CODIGO -- relaciona a tabela pfunc à tabela ppessoa AND PFUNC.CODSITUACAO != 'D' -- filtra a tabela pfunc INNER JOIN PSECAO -- como esta tabela se relaciona com as demais ???
GOSTEI 0