1
resposta

[Projeto] Mão na Massa

SQL SERVER e SSMS

-- --*** 1. ***--
SELECT * FROM clientes WHERE nome = 'Maria Silva';
--id	nome	telefone	email	endereco
--1	Maria Silva	115551234	maria.silva@email.com	Rua das Flores, 123, Cidade A

-- --*** 2. ***--
SELECT p.id, p.idcliente, p.status FROM pedidos p where p.status = 'entregue';
--id	idcliente	status
--3	8	Entregue
--6	1	Entregue
--[...]

-- --*** 3. ***--
SELECT * FROM produtos WHERE preco > 10 AND  preco < 15;
--id	nome	descricao	preco	categoria
--15	Salmão Grelhado	Salmão grelhado com legumes da estação.	11.00	Jantar
--31	Lasanha à Bolonhesa	Deliciosa lasanha caseira com molho bolonhesa	13.00	Almoço

-- --*** 4. ***--
select nome, Cargo, DataContratacao from colaboradores where DataContratacao  BETWEEN '2022-01-01' AND '2022-06-30';
--nome	Cargo	DataContratacao
--Carlos Silva	Gerente	2022-03-15
--Marta Sousa	Chef de Cozinha	2022-05-10
--Sofia Rodrigues	Garçom	2022-01-12
--Inês Lima	Barista	2022-04-02

-- --*** 5. ***--
SELECT TOP(1) c.nome, p.datahorapedido FROM pedidos p
JOIN clientes c
    ON p.idcliente = c.id
ORDER BY datahorapedido;
--nome	datahorapedido
--Ana Maria Silva	2023-01-02 08:15:00.000

-- ---*** 6. ***--
SELECT p.id, p.nome FROM produtos p
left JOIN itenspedidos ip
    on ip.idproduto = p.id
WHERE ip.idproduto  is Null
--id	nome	Pedidos
--(0 linhas afetadas)

-- ---*** 7. ***--
SELECT DISTINCT c.nome FROM pedidos p
JOIN clientes c
    ON p.idcliente = c.id
WHERE p.datahorapedido BETWEEN 
    CAST('2023-01-01' AS DATE)
    AND CAST('2023-12-31' AS DATE)
ORDER BY c.nome;
-- nome
--Ana Maria Silva
--[...]
--Sofia Santos
--(26 linhas afetadas)

-- ---*** 8. ***---
SELECT p.nome, count(ip.idproduto) as 'Pedidos' FROM produtos p
LEFT JOIN itenspedidos ip
    on ip.idproduto = p.id
GROUP BY p.id, p.nome
HAVING count(ip.idproduto) < 15 
ORDER BY count(ip.idproduto);
--nome	Pedidos
--Lasanha à Bolonhesa	1
--Cappuccino	13
--Salada de Frutas	14

-- ---*** 9. ***---
SELECT 
    c.nome as Cliente,
    pr.nome as Produto,
    p.id as IdPedido
FROM pedidos p
JOIN clientes c	ON p.idcliente = c.id
JOIN itenspedidos ip ON ip.idpedido = p.id
JOIN produtos pr ON pr.id = ip.idproduto
WHERE c.nome in ('Pedro Alves', 'Ana Rodrigues')
ORDER BY c.nome;
--Cliente |	Produto	| IdPedido
--Ana Rodrigues	Cappuccino | Gelado	| 2
--[...]
--Pedro Alves | Misto Quente | 429
--(74 linhas afetadas)

-- --*** 10. ***--

SELECT  TOP 1 WITH TIES c.nome as Cliente, SUM(ip.precounitario) as 'Valor total das compras' from itenspedidos ip
INNER JOIN pedidos p
    ON ip.idpedido = p.id
INNER JOIN clientes c
    ON p.idcliente = c.id
GROUP BY c.nome
ORDER BY SUM(ip.precounitario) DESC
--Cliente |	Valor total das compras
--João Carlos Rodrigues | 486.00
1 resposta

Ei, Robson! Tudo bem?

Quanta variedade de consultas que você construiu, usando filtros, JOIN, GROUP BY, HAVING e ordenações, parabéns pela dedicação! Percebi que você explorou bem diferentes cenários do banco, mostrando domínio na leitura dos dados e clareza na escrita das queries.

Continue se dedicando aos estudos e qualquer dúvida, compartilhe.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!