Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rcoltrane

consulta SQL

Recommended Posts

Pessoal, sou novo por aqui então perdoem se postei no lugar errado. Preciso de ajuda com uma consulta SQL que não está me retornando nenhum valor, sendo que deveria retornar. Tenho duas tabelas no Oracle 10g, uma chamada VAGAS e outra chamada NF. O que preciso fazer é pegar todos os dados da primeira tabela (VAGAS) cujos valores do código da vaga (campo id_vaga) não estejam presentes na segunda tabela (NF). Montei minha query da seguinte maneira:

 

SELECT vagas.id_vaga, vagas.data_abertura, vagas.data_fech_cancel, nf.vaga

FROM vagas, nf

WHERE nf.vaga = vagas.id_vaga and

vagas.id_vaga NOT IN (SELECT vaga from NF)

 

Aqui a chave primaria da tabela VAGAS é o campo "id_vaga" e a chave correspondente na tabela NF é o campo "vaga".

 

Na minha tabela vagas, tenho várias vagas que nao tem uma NF emitida para elas, ou seja, o id_vaga não estará presente na tabela NF porque o sistema ainda não gerou uma NF para estas vagas. Só que a consulta acima não traz estas vagas. O que estou fazendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peço aos moderadores para que por gentileza apaguem este topico, já consegui identificar o que fiz de errado na consulta acima. Desculpem-me pelo inconveniente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publique a solução pode vir a ajudar alguém.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publique a solução pode vir a ajudar alguém.

 

O que fiz foi remover a tabela NF da primeira parte da consulta, referenciando ela apenas na subquery:

 

ERRADO:

SELECT vagas.id_vaga, vagas.data_abertura, vagas.data_fech_cancel, nf.vaga

FROM vagas, nf

WHERE nf.vaga = vagas.id_vaga and

vagas.id_vaga NOT IN (SELECT vaga from NF)

 

CERTO:

SELECT vagas.id_vaga, vagas.data_abertura, vagas.data_fech_cancel

FROM vagas

WHERE vagas.id_vaga NOT IN (SELECT vaga from NF)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.