1
resposta

[Projeto] Resolução Desafio

Olá! Segue minha resolução dos desafios propostos. Fiquei contente que pude fazer todos os exercícios sem auxílio.

-- Traga todos os dados da cliente Maria Silva.

SELECT * from clientes 
where nome LIKE 'Maria Silva'

-- Busque o ID do pedido e o ID do cliente dos pedidos onde 
-- o status esteja como entregue.

select * from pedidos

SELECT ip.idpedido, p.idcliente 
from pedidos as p
join itenspedidos as ip on p.id = ip.idpedido
where p.status = 'Entregue';

-- Retorne todos os produtos onde o preço seja maior que 10 e menor que 15.

SELECT nome, preco 
FROM produtos
where preco BETWEEN 10 and 15;

-- Busque o nome e cargo dos colaboradores que foram
-- contratados entre 2022-01-01 e 2022-06-31.

SELECT nome, cargo, datacontratacao
from colaboradores 
where datacontratacao BETWEEN strftime('2022-01-01') and strftime('2022-06-31');

-- Recupere o nome do cliente que fez o primeiro pedido.

select * from pedidos

SELECT c.nome, p.id
from clientes c
join pedidos p ON c.id = p.idcliente
where datahorapedido LIMIT 1;

-- Liste os produtos que nunca foram pedidos.

select * from itenspedidos

select p.nome, ip.quantidade
from produtos p
join itenspedidos ip on p.id = ip.idproduto
where quantidade isnull;

-- Liste os nomes dos clientes que fizeram 
-- pedidos entre 2023-01-01 e 2023-12-31.

select c.nome, p.datahorapedido
from clientes c
join pedidos p on c.id = p.idcliente
where datahorapedido BETWEEN strftime('2023-01-01') and strftime('2023-12-31');

-- Recupere os nomes dos produtos que estão em menos de 15 pedidos.

select p.nome, ip.quantidade
from produtos p
join itenspedidos ip on p.id = ip.idproduto
where quantidade < 15;

-- Liste os produtos e o ID do pedido que foram realizados 
-- pelo cliente "Pedro Alves" ou pela cliente "Ana Rodrigues".

SELECT pr.nome, ip.idpedido
from produtos pr
join itenspedidos ip on pr.id = ip.idproduto
JOIN pedidos p on p.id = ip.idpedido
join clientes c on p.idcliente = c.id
where c.nome = 'Pedro Alves' or c.nome = 'Ana Rodrigues';

-- Recupere o nome e o ID do cliente que mais comprou(valor) no Serenatto.

select pe.idcliente, c.nome, SUM(ip.precounitario * ip.quantidade) as valor
from clientes c
join pedidos pe on c.id = pe.idcliente
join itenspedidos ip on pe.id = ip.idpedido
group by pe.idcliente
order by valor desc 
limit 1;
1 resposta

Oii, Gabriel, tudo bem?

Obrigada por compartilhar com a gente os seus desafios! Eles estão muito bem feitos.

Continue assim! :)

Abraços e bons estudos!