Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como eu tranformo essa consulta para sub consulta


Leonardo Viana

Pergunta

estou fazendo um trabalho onde o enunciado ta assim

Apresente o nome completo dos empregados que têm “Sales” no cargo atual e que recebem

comissão (commission_pct de Employees). Utilize somente sub-consultas.

minha sintaxe esta assim

select first_name, last_name from employees where commission_pct is not Null and first_name like "%Sales%" or last_name like "%Sales%"

como eu tranformo ela?

agradeço!

abraço :rolleyes:

19537990.jpg

uma imagem do banco

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Leonardo Viana'

Vamos dividir seu problemas para melhor didática.

A primeira dica se refere ao trecho do texto onde é pedido que apresente o nome completo dos empregados

Você fez select first_name, last_name from employees o que está correto. Mas se fizer assim: select CONCAT(first_name, " ", last_name) AS NOME_COMPLETO from employees

ficará melhor.

Segunda dica. Foi pedido empregados que têm “Sales” no cargo, mas você procurou “Sales” no nome e sobrenome. "Sales" é "vendedor" em ingles. A descrição deste está no campo job_title da tabela JOBS. Para obter esta informação você deverá procurar por

SELECT job_id 
FROM JOBS 
WHERE job_name = "Sales"
O último ponto pedido são os empregados que que recebem comissão (commission_pct de Employees). Este você respondeu corretamente. O seu professor pediu que fossem utilizadas subconsultas. Então, juntando tudo, temos:
SELECT CONCAT(first_name, " ", last_name) AS NOME_COMPLETO 
FROM employees
WHERE job_id IN (SELECT job_id FROM JOBS WHERE job_name = "Sales")
AND commission_pct IS NOT NULL;
Uma nota: A forma correta para esta consulta seria:
SELECT CONCAT(first_name, " ", last_name) AS NOME_COMPLETO 
FROM employees e
INNER JOIN JOBS j ON j.job_id = e.job_id
WHERE j.job_name = "Sales" 
AND e.commission_pct IS NOT NULL;

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'Leonardo Viana'

Vamos dividir seu problemas para melhor didática.

A primeira dica se refere ao trecho do texto onde é pedido que apresente o nome completo dos empregados

Você fez select first_name, last_name from employees o que está correto. Mas se fizer assim: select CONCAT(first_name, " ", last_name) AS NOME_COMPLETO from employees

ficará melhor.

Segunda dica. Foi pedido empregados que têm “Sales” no cargo, mas você procurou “Sales” no nome e sobrenome. "Sales" é "vendedor" em ingles. A descrição deste está no campo job_title da tabela JOBS. Para obter esta informação você deverá procurar por

SELECT job_id 
FROM JOBS 
WHERE job_name = "Sales"
O último ponto pedido são os empregados que que recebem comissão (commission_pct de Employees). Este você respondeu corretamente. O seu professor pediu que fossem utilizadas subconsultas. Então, juntando tudo, temos:
SELECT CONCAT(first_name, " ", last_name) AS NOME_COMPLETO 
FROM employees
WHERE job_id IN (SELECT job_id FROM JOBS WHERE job_name = "Sales")
AND commission_pct IS NOT NULL;
Uma nota: A forma correta para esta consulta seria:
SELECT CONCAT(first_name, " ", last_name) AS NOME_COMPLETO 
FROM employees e
INNER JOIN JOBS j ON j.job_id = e.job_id
WHERE j.job_name = "Sales" 
AND e.commission_pct IS NOT NULL;

muito obrigadooo cara, você foi muito prestativo

eu fiz da seguintemaneira

com sub consultas:

SELECT CONCAT(first_name, " ", last_name) AS NOME_COMPLETO

FROM employees

WHERE job_id IN (SELECT job_id FROM jobs WHERE job_title like "%Sales%")

AND commission_pct IS not NULL;

com joins

SELECT CONCAT(first_name, " ", last_name) AS NOME_COMPLETO

FROM employees e

INNER JOIN JOBS j ON j.job_id = e.job_id

WHERE j.job_title like "%Sales%"

AND e.commission_pct IS NOT NULL;

ou seja eu adicionei like, porque não estava buscando Sales no titulo do job

e job_nome é job_title

obs_ dei vacilo com o sales srsrs

Editado por Leonardo Viana
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...