Ir para conteúdo
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Relacionamento de tabelas SQL


Posts Recomendados


  • Tópicos Que Criei:  2
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   1
  • Pontos/Conquistas:  38
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  42

Prezados, bom dia!  Gostaria que alguém pudesse ajudar em relação a uma consulta SQL, é que provavelmente uma das tabelas que estou usando não faz relacionamento com as demais tabelas, e com isso deve está duplicando as informações, ou seja, gostaria de ajuda no que diz respeito ao relacionamento de tabelas PFUNC x VFAIXASALARIAL.

Segue a consulta:

SELECT PFUNC.CHAPA,PPESSOA.SEXO,PFUNC.NOME,PFUNCAO.NOME,PFUNCAO.CBO, PFUNC.SALARIO,
PFUNC.CODTIPO,PFUNC.DATAADMISSAO,PPESSOA.CPF,PSECAO.DESCRICAO,PSECAO.CODDEPTO,
PFUNC.DATADEMISSAO,PPESSOA.DTNASCIMENTO,PFUNC.CODSITUACAO,VFAIXASALARIAL.NOMEFAIXA

FROM PFUNC, PPESSOA, PSECAO, PFUNCAO, VFAIXASALARIAL

WHERE PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA
AND PFUNC.CODSECAO = PSECAO.CODIGO
AND PFUNC.CODPESSOA = PPESSOA.CODIGO
AND PFUNCAO.CODCOLIGADA = PFUNC.CODCOLIGADA
AND PFUNCAO.CODIGO = PFUNC.CODFUNCAO
AND PFUNC.CODSITUACAO <> 'D'
AND PFUNC.CODTIPO <> 'T'
AND PFUNC.CHAPA <> '0000000'

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  470
  • Conteúdo/Dia:  0.21
  • Reputação:   132
  • Pontos/Conquistas:  3.143
  • Conteúdo Resolvido:  0
  • Dias Ganho:  63
  • Status:  Offline
  • Idade:  35
  • Dispositivo:  Windows

@Adelson joão da Silv, bom dia!

Tudo bem ? 

Segue uma possível solução, porém utilizei um LEFT JOIN na tabela DBO.VFAIXASALARIAL pois vai depender do ambiente se está obrigatório ou não.... se tiver obrigatório no seu remova o LEFT... antes de colocar em produção verifique os index para execução, pois ao testar aqui no meu ambiente obtive um SCAN da PPESSOA e dependendo do volume ficará muito lento.

 

/*

USE [CORPORERM]
GO

SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

SELECT 
     PFUNC.CHAPA
    ,PPESSOA.SEXO
    ,PFUNC.NOME
    ,PFUNCAO.NOME
    ,PFUNCAO.CBO
    ,PFUNC.SALARIO
    ,PFUNC.CODTIPO
    ,PFUNC.DATAADMISSAO
    ,PPESSOA.CPF
    ,PSECAO.DESCRICAO
    ,PSECAO.CODDEPTO
    ,PFUNC.DATADEMISSAO
    ,PPESSOA.DTNASCIMENTO
    ,PFUNC.CODSITUACAO
    ,VFAIXASALARIAL.NOMEFAIXA
FROM DBO.PFUNC
JOIN DBO.PPESSOA ON (PFUNC.CODPESSOA = PPESSOA.CODIGO ) 
JOIN DBO.PSECAO ON (PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA AND PFUNC.CODSECAO = PSECAO.CODIGO)
JOIN DBO.PFUNCAO ON (PFUNC.CODCOLIGADA = PFUNCAO.CODCOLIGADA AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO)
LEFT JOIN DBO.VFAIXASALARIAL ON (PFUNC.CODCOLIGADA = VFAIXASALARIAL.CODCOLIGADA AND PFUNC.[GRUPOSALARIAL] = VFAIXASALARIAL.CODFAIXA) 
WHERE PFUNC.CODCOLIGADA = 1
AND PFUNC.CODSITUACAO <> 'D'
AND PFUNC.CODTIPO <> 'T'
AND PFUNC.CHAPA <> '0000000'
GO

 

*/

 

Espero ter ajudado.

Abraços.

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.