Segue a resolução dos 10 exercicios propostos. Obs - A resolução é um pouco diferente, porem as saidas são a mesma do professor.
/* Traga todos os dados da cliente Maria Silva.*/
SELECT CL.nome,
PD.idcliente,
PD.datahorapedido,
PD.status,
PR.nome AS produto_nome,
IP.idproduto,
IP.quantidade,
IP.precounitario
FROM CLIENTES CL
INNER JOIN PEDIDOS PD ON CL.id = PD.idcliente
INNER JOIN ITENSPEDIDOS IP ON PD.id = IP.idpedido
INNER JOIN PRODUTOS PR ON IP.idproduto = PR.id
WHERE CL.nome = 'Maria Silva';
/* Busque o ID do pedido e o ID do cliente dos pedidos onde o status esteja como entregue. */
SELECT CL.id,
CL.nome,
PD.id AS 'ID_PEDIDO',
PD.idcliente AS 'ID_CLIENTE',
PD.status
FROM clientes CL
INNER JOIN pedidos PD ON CL.id = PD.idcliente
WHERE PD.status = 'Entregue';
/* Retorne todos os produtos onde o preço seja maior que 10 e menor que 15. */
SELECT * FROM PRODUTOS WHERE PRECO > 10.0 AND PRECO < 15.0;
/*Busque o nome e cargo dos colaboradores que foram contratados entre 2022-01-01 e 2022-06-31. */
SELECT NOME, CARGO FROM colaboradores WHERE datacontratacao BETWEEN '2022-01-01' AND '2022-06-31';
/*Recupere o nome do cliente que fez o primeiro pedido. */
SELECT CL.nome, PD.datahorapedido
FROM CLIENTES CL
INNER JOIN PEDIDOS PD ON CL.id = PD.idcliente
ORDER BY datahorapedido LIMIT 1;
/*Liste os produtos que nunca foram pedidos. */
SELECT *
FROM PRODUTOS PR
LEFT JOIN ITENSPEDIDOS IP ON PR.id = IP.idproduto
WHERE IP.idproduto IS NULL;
/*Liste os nomes dos clientes que fizeram pedidos entre 2023-01-01 e 2023-12-31. */
SELECT CL.nome, PD.datahorapedido
FROM CLIENTES CL
INNER JOIN PEDIDOS PD ON CL.id = PD.idcliente
WHERE PD.datahorapedido BETWEEN '2023-01-01' AND '2023-12-31';
/* Recupere os nomes dos produtos que estão em menos de 15 pedidos. */
SELECT PR.nome AS 'PRODUTOS QUE ESTÃO EM MENOS DE 15 PEDIDOS'
FROM PRODUTOS PR
INNER JOIN itenspedidos IP ON PR.id = IP.idproduto
GROUP BY PR.nome
HAVING COUNT(IP.idpedido) < 15;
/* Liste os produtos e o ID do pedido que foram realizados pelo cliente "Pedro Alves" ou pela cliente "Ana Rodrigues". */
SELECT CL.NOME, PR.NOME,PR.descricao,IP.idpedido
FROM CLIENTES CL
INNER JOIN PEDIDOS PD ON CL.id = PD.idcliente
INNER JOIN ITENSPEDIDOS IP ON PD.id = IP.idpedido
INNER JOIN produtos PR ON IP.idproduto = PR.id
WHERE CL.nome = 'Pedro Alves' OR CL.nome = 'Ana Rodrigues'
ORDER BY IP.idpedido ASC;
/* Recupere o nome e o ID do cliente que mais comprou(valor) no Serenatto */
SELECT CL.nome, CL.id, SUM(IP.quantidade * IP.precounitario) AS total_comprado
FROM CLIENTES CL
INNER JOIN PEDIDOS PD ON CL.id = PD.idcliente
INNER JOIN ITENSPEDIDOS IP ON PD.id = IP.idpedido
GROUP BY CL.nome, CL.id
ORDER BY total_comprado DESC
LIMIT 1;