Fórum Join para selecionar nomes que ñ existe em outra TB #239644

25/06/2004

0

Pessoal bom dia !

Tenho uma tabela Access dai tenho que relacionar da tabela aluno os alunos que não estao cadastrado na tabela financeiro, sendo que tenho uma chave na tabela aluno chamada matricula_a e outra na tabela financeiro chamada cod_a

Fiz um join assim :

SELECT A.ALUNO FROM TBALUNO A,TBFINANCEIRO B WHERE A.MATRICULA<>B.COD_A

Dai meu result set traz nomes duplicados e se a tabela financerio tiver fazia ele não tras nada o que tem de errado nisso.

Estou fazendo isso para que relacionar em uma combobox do formulario financeiro somente alunos da tabela aluno que não possuem cadastro na TBFINANCEIRO

Alguem pode me ajudar por gentileza ?

Att.
Jonas.


Jonasaf

Jonasaf

Responder

Posts

30/06/2004

Dataclass

Jonas,

Fiz um exemplo usando as tabelas de um sistema nosso e funcionou muito bem,existe mais de uma maneira de implementar isso(não vamos entrar no tópico performance),pro teu sistema seria mais ou menos assim:

qListaAlunosFaltandoFinanceiro.Close();
qListaAlunosFaltandoFinanceiro.SQL.Text := 
´ SELECT  Nome ´+            
´    FROM  tabAlunos ´+         
´  WHERE  matriculaAluno not in (SELECT distinct (matriculaAluno)  ´+
´                                               FROM tabFincanceiro) ´;
qListaAlunosFaltandoFinanceiro.Open();


Em poruguês claro seria assim :Selecione os Nomes dos Alunos
(Localizados na tabela de Alunos) , mas somente os que não constam na tabela Financeiro.

Qualquer coisa é só postar que estamos a disposição!

Hugo / Reinaldo


Responder

Gostei + 0

30/06/2004

Paulo_amorim

Olá

Ainda:

SELECT a.* FROM alunos a LEFT JOIN financeiro f
ON a.matricula = f.matricula
WHERE f.matricula IS NULL


Espero que funcione
Até+


Responder

Gostei + 0

30/06/2004

Rogerio_amorim

Eu já criei algumas consultas desse tipo no access, mas para funcionar, tive que definir os campos de ligação como primários, para a sua realidade ficaria + ou - assim:

SELECT aluno.*
FROM aluno
WHERE aluno.matricula_a not in (select aluno.matricula_a from aluno, financeiro
where aluno.matricula_a= financeiro.cod_a);


Espero ter ajudado !

Rogerio Amorim


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar