Ir para conteúdo

Arquivado

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

denis.andrade

Select

Recommended Posts

Boa tarde galera, sou iniciante em programação e estou me deparando com um problema em um SELECT, utilizo SQL Server

é o seguinte....

Tenho uma tabela VACINA onde contem dados de todas vacinas existentes e
Tenho uma tabela APLICACAO onde contem dados de todas aplicações de vacinas realizadas.

Quero buscar todas vacinas cujo não existem na tabela APLICACAO quando APLICACAO.IDPACIENTE = 10. (Vacinas aplicadas no paciente de id = 10)
(ou seja, todas vacinas que determinado paciente ainda não recebeu)

Select que eu tentei fazer e não deu certo:

select *from Vacina where Vacina.idVacina !=
(select Vacina.idvacina from Vacina inner join Aplicacao
on Vacina.idVacina = Aplicacao.vacina
where Aplicacao.idPaciente !=10)

Mensagem de erro:
A subconsulta retornou mais de 1 valor. Isso não é permitido quando a subconsulta segue um =, !=, <, <= , >, >= ou quando ela é usada como uma expressão.

Agradeço qualquer tipo de ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

--vacinas do paciente 10


select idvacina
from aplicacao
where idpaciente = 10


--vacinas em geral
select *
from vacinas


--vacinas que o 10 ñ fez




select *
from vacinas
where idvacina not in ( select idvacina
                        from aplicacao
                        where idpaciente = 10 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

--vacinas do paciente 10

 

 

select idvacina

from aplicacao

where idpaciente = 10

 

 

--vacinas em geral

select *

from vacinas

 

 

--vacinas que o 10 ñ fez

 

 

select *
from vacinas
where idvacina not in ( select idvacina
                        from aplicacao
                        where idpaciente = 10 )

 

 

Obrigado cara!!

Deu certo utilizando o 'not in', ainda não conhecia esse comando...

abraços

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.