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