Consulta com erro duplicado.

SQL Server

SQL

18/02/2021

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''
Luiz Roberto

Luiz Roberto

Curtidas 0

Respostas

Emerson Nascimento

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:
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
POSTAR