Usuário com melhor resposta
CONSULTA RETORNANDO VALORES DUPLICADOS

Pergunta
-
BOA TARDE,
TENHO A SEGUINTE CONSULTO SQL:
SELECT CHAPA, PFUNC.NOME AS NOME_FUNCIONARIO, CODSITUACAO, DATAADMISSAO, PFUNCAO.NOME AS NOME_FUNÇÃO, /*PFUNCAO.CODIGO ,PSECAO.CODIGO,*/
PSECAO.DESCRICAO AS DESCRIÇÃO_SEÇÃO, PPESSOA.CARTMOTORISTA AS Nº_CNH,PPESSOA.TIPOCARTHABILIT AS CAT_CNH, PPESSOA.DTVENCHABILIT AS VENC_CNH FROM PFUNC (NOLOCK)
LEFT JOIN PPESSOA (NOLOCK) ON PFUNC.CODPESSOA=PPESSOA.CODIGO
LEFT JOIN PSECAO (NOLOCK) ON PFUNC.CODSECAO=PSECAO.CODIGO
LEFT JOIN PFUNCAO (NOLOCK) ON PFUNC.CODFUNCAO=PFUNCAO.CODIGO
WHERE PFUNC.CODSITUACAO <>'D' AND PFUNC.CODSITUACAO <>'U' AND PFUNCAO.CODIGO = '0198'
ORDER BY VENC_CNHESTÁ ME RETORNANDO OS VALORES CORRETOS, PORÉM ALGUNS VÊM DUPLICATOS COMO ABAIXO:
R: 028491 JADER ASSIS ALVES I 2001-10-01 MOTORISTA T-0929 - OPERACAO NULL NULL NULL
R: 069985 EUSTAQUIO BENEVIDES CUSTODIO I 1998-04-13 MOTORISTA ADMBH - SERVICOS GERAIS 02763458 C NULL
R: 069985 EUSTAQUIO BENEVIDES CUSTODIO I 1998-04-13 MOTORISTA ADMBH - SERVICOS GERAIS 02763458 C NULL
R: 069985 EUSTAQUIO BENEVIDES CUSTODIO I 1998-04-13 MOTORISTA ADMBH - SERVICOS GERAIS 02763458 C NULL
R: 069985 EUSTAQUIO BENEVIDES CUSTODIO I 1998-04-13 MOTORISTA ADMBH - SERVICOS GERAIS 02763458 C NULL
R: 071124 ROGERIO MAIA FRAGOSO P 2006-09-01 MOTORISTA L-1777 - PETROBRAS / VITORIA NULL NULL NULL
R: 071124 ROGERIO MAIA FRAGOSO P 2006-09-01 MOTORISTA L-1777 - PETROBRAS / VITORIA NULL NULL NULL
R: 070993 CARLOS FERNANDO GOMES I 2005-08-15 MOTORISTA L-1777 - PETROBRAS / VITORIA 00551364758 AD 2007-05-25ALGUÉM CONSEGUE ME DIZER PORQUE ESSE VALORES ESTÁ VINDO DUPLICADOS?
GRATO.
- Editado Andrecalixto segunda-feira, 30 de março de 2015 16:56
Respostas
-
Deleted
- Sugerido como Resposta Durval RamosModerator terça-feira, 31 de março de 2015 16:43
- Marcado como Resposta Durval RamosModerator terça-feira, 7 de abril de 2015 13:05
segunda-feira, 30 de março de 2015 19:26 -
OBRIGADO, CONSEGUIR DA SEGUINTE MANEIRA:
NESSA CLAUSULA FICOU O SEGUINTE:
LEFT JOIN PSECAO (NOLOCK) ON PFUNC.CODSECAO=PSECAO.CODIGO AND PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA
A PARTIR DO MOMENTO QUE ACRESCENTEI O PFUNC.CODCOLIGADA..., PASSOU A ME RETORNA OS MESMO VALORES, MAS SEM REPETIÇÃO.
GRATO
- Sugerido como Resposta Durval RamosModerator terça-feira, 31 de março de 2015 16:44
- Marcado como Resposta Durval RamosModerator terça-feira, 7 de abril de 2015 13:05
Todas as Respostas
-
OBRIGADO, CONSEGUIR DA SEGUINTE MANEIRA:
NESSA CLAUSULA FICOU O SEGUINTE:
LEFT JOIN PSECAO (NOLOCK) ON PFUNC.CODSECAO=PSECAO.CODIGO AND PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA
A PARTIR DO MOMENTO QUE ACRESCENTEI O PFUNC.CODCOLIGADA..., PASSOU A ME RETORNA OS MESMO VALORES, MAS SEM REPETIÇÃO.
GRATO
- Sugerido como Resposta Durval RamosModerator terça-feira, 31 de março de 2015 16:44
- Marcado como Resposta Durval RamosModerator terça-feira, 7 de abril de 2015 13:05
-
-
SELECT PFUNC.CHAPA, PFUNC.NOME, CONVERT (DATE,PFUNC.DATAADMISSAO,103)AS DATA_ADMISSÃO, PFUNC.CODSITUACAO, PFUNCAO.CODIGO, PFUNCAO.NOME AS NOME_FUNÇÃO, PSECAO.DESCRICAO AS DESCRIÇÃO_SEÇÃO, PPESSOA.CARTMOTORISTA AS Nº_CNH, PPESSOA.TIPOCARTHABILIT AS CATEGORIA_CNH, CONVERT (DATE,PPESSOA.DTVENCHABILIT,103) AS VENC_CNH FROM PFUNC (NOLOCK) LEFT OUTER JOIN PFUNCAO (NOLOCK) ON PFUNC.CODFUNCAO=PFUNCAO.CODIGO RIGHT OUTER JOIN PSECAO (NOLOCK) ON PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND PFUNC.CODSECAO=PSECAO.CODIGO INNER JOIN PPESSOA (NOLOCK) ON PFUNC.CODPESSOA=PPESSOA.CODIGO WHERE (PFUNCAO.CODIGO = '0198' OR PFUNCAO.CODIGO = '0199' OR PFUNCAO.CODIGO = '0223' OR PFUNCAO.CODIGO = '0243' OR PFUNCAO.CODIGO = '1031' OR PFUNCAO.CODIGO = '0233' OR PFUNCAO.CODIGO = '1039' OR PFUNCAO.CODIGO = '1037' OR PFUNCAO.CODIGO = '1037' OR PFUNCAO.CODIGO = '1038' OR PFUNCAO.CODIGO = '0488' OR PFUNCAO.CODIGO = '0296') AND PFUNC.CODSITUACAO <>'D' AND PFUNC.CODSITUACAO <>'U' ORDER BY VENC_CNH
José Diz,
Ainda não conseguir entender, porque está retornando valores repetidos, poderia me ajudar?
Tem alguns funcionários que retorna somente um valor, mas a maioria está retorno os valores repetidos, segue exemplo:
028491 JADER S*** A**** 2001-10-01 I 0198 MOTORISTA T-0929 - OPERACAO NULL NULL NULL 028491 JADER S*** A**** 2001-10-01 I 0198 MOTORISTA T-0929 - OPERACAO NULL NULL NULL
- Editado Andrecalixto segunda-feira, 6 de abril de 2015 20:34
-
Olá, José Diz,
Tinha entendio a sua explicação, mas não sabia que no primeiro INNER JOIN eu teria que fazer PFUNC.CODCOLIGADA, agora ficou mais claro. Não sou expert em SQL, mas estou tentando.
Muito Obrigado pela ajuda.
- Editado Andrecalixto terça-feira, 7 de abril de 2015 12:09