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