1
resposta

[Projeto] Resolução

Segue abaixo a resolução dos exercícios

-- 1.Traga todos os dados da cliente Maria Silva.
SELECT * FROM clientes c WHERE nome = 'Maria Silva';

-- 2.Busque o ID do pedido e o ID do cliente dos pedidos onde o status esteja como entregue.
SELECT 
    ID,
    IDCliente,
    Status -- Checagem
FROM 
    Pedidos p
WHERE 
    Status = 'Entregue';

-- 3.Retorne todos os produtos onde o preço seja maior que 10 e menor que 15.
SELECT * FROM produtos p WHERE preco > 10 AND preco < 15;

-- 4.Busque o nome e cargo dos colaboradores que foram contratados entre 2022-01-01 e 2022-06-31.
SELECT 
    Nome,
    Cargo,
    DataContratacao --- Checagem
FROM
    colaboradores c
WHERE 
    DataContratacao BETWEEN '2022-01-01' AND '2022-06-30';

-- 5.Recupere o nome do cliente que fez o primeiro pedido.
SELECT 
    nome 
FROM 
    clientes c
WHERE 
    ID = (
        SELECT 
            id
        FROM 
            Pedidos p
        ORDER BY
            DataHoraPedido ASC
        LIMIT 1);


-- 6.Liste os produtos que nunca foram pedidos.
SELECT 
    nome
FROM
    produtos p
WHERE id NOT IN (
    SELECT
        idpedido
    FROM
        itenspedidos i);

-- 7.Liste os nomes dos clientes que fizeram pedidos entre 2023-01-01 e 2023-12-31.
SELECT 
    c.nome,
    p.DataHoraPedido -- Checagem 
FROM
    clientes c
INNER JOIN Pedidos p ON c.id = p.IDCliente
WHERE 
    p.DataHoraPedido BETWEEN '2023-01-01' AND '2023-12-31'
ORDER BY
    p.DataHoraPedido;

-- 8.Recupere os nomes dos produtos que estão em menos de 15 pedidos.
SELECT 
    p.nome,
    i.idpedido 
FROM 
    produtos p
INNER JOIN itenspedidos i ON p.id = i.idproduto 
GROUP BY 
    p.nome 
HAVING 
    COUNT(i.idpedido) < 15;

-- 9.Liste os produtos e o ID do pedido que foram realizados pelo cliente "Pedro Alves" ou pela cliente "Ana Rodrigues".
SELECT 
    p.nome,
    i.idpedido 
FROM 
    produtos p
INNER JOIN itenspedidos i ON p.id = i.idproduto 
INNER JOIN Pedidos pd ON i.idpedido = pd.ID 
INNER JOIN clientes c ON pd.IDCliente = c.id 
WHERE 
    c.nome IN ('Pedro Alves', 'Ana Rodrigues');

-- 10.Recupere o nome e o ID do cliente que mais comprou(valor) no Serenatto.
SELECT 
    p.IDCliente,
    c.nome,
    SUM(i.quantidade * i.precounitario) as Total
FROM 
    clientes c
INNER JOIN Pedidos p ON c.id = p.IDCliente 
INNER JOIN itenspedidos i ON p.ID = i.idpedido
GROUP BY 
    p.IDCliente
ORDER BY 
    Total DESC
LIMIT 1;
1 resposta

Oi Gabriel,

Excelente trabalho na resolução dos exercícios! 👍

Seus comandos SQL estão bem estruturados e resolvem os problemas propostos.

Para saber mais: SQL Tutorial

Continue praticando e explorando as possibilidades do SQL! 💪