--Mão na massa: hora da prática
--Traga todos os dados da cliente Maria Silva.
select * from clientes WHERE nome = 'Maria Silva'
--Busque o ID do pedido e o ID do cliente dos pedidos onde o status esteja como entregue
select id as idPedido, idcliente from pedidos where status = 'Entregue'
--Retorne todos os produtos onde o preço seja maior que 10 e menor que 15.
select * from produtos where preco > 10 and preco < 15
--Busque o nome e cargo dos colaboradores que foram contratados entre 2022-01-01 e 2022-06-30
select nome, cargo, datacontratacao from colaboradores where datacontratacao between '2022-01-01' and '2022-06-30'
--Recupere o nome do cliente que fez o primeiro pedido.
select c.nome
from clientes c
join pedidos p on c.id = p.idcliente
where p.id = 1
--Liste os produtos que nunca foram pedidos.
select pr.id, pr.nome, ip.idpedido
from produtos pr
left join itenspedidos ip on pr.id = ip.idproduto
where ip.idpedido isnull
--Liste os nomes dos clientes que fizeram pedidos entre 2023-01-01 e 2023-12-31.
select DISTINCT c.nome
from clientes c
join pedidos p on c.id = p.idcliente
where date(datahorapedido) BETWEEN '2023-01-01' and '2023-12-31'
order by c.nome
--Recupere os nomes dos produtos que estão em menos de 15 pedidos.
select nome from produtos where id in (
select idproduto
from itenspedidos
group by idproduto
having count(idpedido) < 15)
--Liste os produtos e o ID do pedido que foram realizados pelo cliente "Pedro Alves" ou pela cliente "Ana Rodrigues".
select pp.idpedido, p.nome as nomeProduto
from produtos p
join
(select idproduto, idpedido from itenspedidos where idpedido in(
select id from pedidos where idcliente in(
select id from clientes where nome = 'Pedro Alves' or nome = 'Ana Rodrigues'))) as pp
on pp.idproduto = p.id
order by pp.idpedido
--Recupere o nome e o ID do cliente que mais comprou(valor) no Serenatto.
select c.id, c.nome
from clientes c
join pedidos p on c.id = p.idcliente
join
(select idpedido, max(ip.totalpedido) from
(select idpedido, sum(precounitario) as totalpedido from itenspedidos group by idpedido) as ip) as ipmax
on p.id = ipmax.idpedido