Join para selecionar nomes que ñ existe em outra TB
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.
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
Curtidas 0
Respostas
Dataclass
25/06/2004
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:
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
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
GOSTEI 0
Paulo_amorim
25/06/2004
Olá
Ainda:
Espero que funcione
Até+
Ainda:
SELECT a.* FROM alunos a LEFT JOIN financeiro f ON a.matricula = f.matricula WHERE f.matricula IS NULL
Espero que funcione
Até+
GOSTEI 0
Rogerio_amorim
25/06/2004
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
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
GOSTEI 0