Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre Lógica do Banco Oracle

Boa noite. Minha dúvida é referente ao vídeo 4 da aula 04 - Alterando e excluindo dados existentes. Tenho o seguinte código:

SELECT A.MATRICULA, A.NOME, A.FERIAS FROM VENDEDORES A 
WHERE EXISTS (SELECT 1 FROM 
T_VENDEDORES B WHERE A.MATRICULA = SUBSTR(B.MATRICULA,3,3));

Meu resultado obtido é :

Imagem_resultado

Sabendo que a tabela A ( Vendedores) tem os seguintes dados:

Tabela_A

E a B (T_Vendedores):

Tabela B

Gostaria de entender qual a lógica por trás dessa consulta? Pois não compreendo o porquê ele está trazendo os dados dos funcionários que não estão de férias (linhas com o valor 0) se eu estou solicitando os dados de onde existem apenas o valor 1.

2 respostas
solução!

Olá, Isabelle, tudo bem?

Ao informar o valor 1 no Select, você apenas está solicitando que todos os campos sejam retornados. Para que apenas os vendedores que estão de férias sejam retornados, você precisa informar a condição na clausula WHERE:

SELECT A.MATRICULA, A.NOME, A.FERIAS FROM VENDEDORES  A 
WHERE EXISTS (SELECT 1 FROM 
t_vendedores B WHERE A.MATRICULA = B.MATRICULA AND A.FERIAS = 1);

Espero ter ajudado e bons estudos!

Ah entendi. Muito obrigada Danielle!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software