Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problema com Consulta em 3 Tabelas


DiegoVix

Pergunta

Boa tarde Amigos,

Segue meu problema

Tabela RH.T01000_PESFISICA

CODPESFIS (PK)

NOME

ENDERECO

TABELA RH.T01001_SERVIDOR

MATRICULA

SITUAÇÃO

CODPESFIS (FK)

CARGO

TABELA RH.T01583_CURSOPFEXT

CODCURSO(PK)

NOME CURSO

CODPESFIS(FK)

VAMOS LA GENTE, EU PRECISO DE UMA CONSULTA QUE TRAGA TODOS OS NOMES, MATRICULAS E CARGOS DOS SERVIDORES QUE ESTAO COM A SITUAÇÃO ATIVA NO SISTEMA E QUE não TENHAM NENHUM CURSO CADASTRADO NO BANCO.

EU CHEGUEI AQUI... SO QUE não ESTA CERTO

SELECT *
FROM RH.T01000_PESFISICA 
INNER JOIN RH.T01001_SERVIDOR 
ON RH.T01000_PESFISICA.T01000_I_CDPESFIS = 
RH.T01001_SERVIDOR. T01000_I_CDPESFIS
INNER JOIN RH.T01583_CURSOPFEXT 
ON RH.T01583_CURSOPFEXT.T01583_I_CDCURSOPFEXT = 
RH.T01000_PESFISICA.T01000_I_CDPESFIS            
WHERE T01001_I_STATUS = 1
and T01027_I_CDQUADRO = 7

STATUS É SE ELE ESTA ATIVO(1) E (0) É INATIVO

QUADRO É O CARGO

alguém SUGERE ALGO???

ABRAÇO

Editado por DiegoVix
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Diego,

Este select retornará as pessoas e dados de servidores que possuem cursos.

Só uma coisa: de acordo com as chaves KF que passou, o relacionamento está incorreto.

Não deveria ser assim não?

SELECT *

FROM RH.T01000_PESFISICA

INNER JOIN RH.T01001_SERVIDOR

ON RH.T01000_PESFISICA.T01000_I_CDPESFIS =

RH.T01001_SERVIDOR. T01000_I_CDPESFIS

INNER JOIN RH.T01583_CURSOPFEXT

ON RH.T01583_CURSOPFEXT.T01000_I_CDPESFIS =

RH.T01000_PESFISICA.T01000_I_CDPESFIS

WHERE T01001_I_STATUS = 1

and T01027_I_CDQUADRO = 7

Compare o script que postou e o que está em negrito.

Se você quiser pegar as pessoas que não tenham cursos, pode fazer assim:

SELECT *
FROM RH.T01000_PESFISICA, RH.T01001_SERVIDOR 
WHERE RH.T01000_PESFISICA.T01000_I_CDPESFIS = RH.T01001_SERVIDOR.T01000_I_CDPESFIS     
and T01001_I_STATUS = 1
and T01027_I_CDQUADRO = 7
and RH.T01000_PESFISICA.T01000_I_CDPESFIS 
not in (select RH.T01583_CURSOPFEXT.T01000_I_CDPESFIS from RH.T01583_CURSOPFEXT)

Uma dica: Quando for fazer o script referenciando mais de uma tabela, coloque "alias" (apelido) nelas.

Ex.:

SELECT * FROM PESFISICA P, .... where P.CODIGO=.... and P.NOME=...

Link para o comentário
Compartilhar em outros sites

  • 0
Boa tarde Diego,

Este select retornará as pessoas e dados de servidores que possuem cursos.

Só uma coisa: de acordo com as chaves KF que passou, o relacionamento está incorreto.

Não deveria ser assim não?

SELECT *

FROM RH.T01000_PESFISICA

INNER JOIN RH.T01001_SERVIDOR

ON RH.T01000_PESFISICA.T01000_I_CDPESFIS =

RH.T01001_SERVIDOR. T01000_I_CDPESFIS

INNER JOIN RH.T01583_CURSOPFEXT

ON RH.T01583_CURSOPFEXT.T01000_I_CDPESFIS =

RH.T01000_PESFISICA.T01000_I_CDPESFIS

WHERE T01001_I_STATUS = 1

and T01027_I_CDQUADRO = 7

Compare o script que postou e o que está em negrito.

Se você quiser pegar as pessoas que não tenham cursos, pode fazer assim:

SELECT *
FROM RH.T01000_PESFISICA, RH.T01001_SERVIDOR 
WHERE RH.T01000_PESFISICA.T01000_I_CDPESFIS = RH.T01001_SERVIDOR.T01000_I_CDPESFIS     
and T01001_I_STATUS = 1
and T01027_I_CDQUADRO = 7
and RH.T01000_PESFISICA.T01000_I_CDPESFIS 
not in (select RH.T01583_CURSOPFEXT.T01000_I_CDPESFIS from RH.T01583_CURSOPFEXT)

Uma dica: Quando for fazer o script referenciando mais de uma tabela, coloque "alias" (apelido) nelas.

Ex.:

SELECT * FROM PESFISICA P, .... where P.CODIGO=.... and P.NOME=...

CARACA... DEU CERTO FULVIO... VALEU MESMO!!!

ENQUANTO A SUA DICA... A PARTIR DE AGORA IREI FAZER DESTE JEITO QUE você FALOU AI!!!!!!!

ABRAÇO

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

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

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...