Buscar

SCRIPT_JOINS_EXEMPLOS_2

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

-----------------------------------------------------------------
-- SCRIPT_JOINS_EXEMPLOS_2.SQL
-- CRIADO POR: Paulo Giovani
-- Demonstra a utilização de JOINS em mais de duas tabelas
-----------------------------------------------------------------
USE master
GO
-- Habilita o banco
Use LojaMaria
GO
-- Verifica os dados das tabelas
SELECT * 
FROM Clientes
GO
SELECT * 
FROM Vendedores
GO
SELECT * 
FROM Produtos
GO
SELECT * 
FROM Pedidos
GO
SELECT * 
FROM Item_de_Pedido
GO
-- Exemplo de consulta com quatro tabelas e três JOINS
-- Exibir quais os clientes (ordenados) que cujo pedido têm prazo de entrega maior
-- que 15 dias para o produto 'Queijo' e que sejam do estado do Rio de Janeiro
-- Exibir o nome do cliente, o número do pedido, o prazo de entrega, o produto 
-- comprado e o estado
-- Passos:
--			Escolher os campos que serão exibidos
--			Encontrar qual cliente tem um pedido
--			Verificar o produto no item de pedido
--			Verificar qual produto corresponde aquele item de pedido
--			Inserir os filtros
--			Ordenar o resultado
SELECT	Cli.Nome_cliente 		AS 'Nome do Cliente',
		Ped.Numero_pedido 		AS 'Número do Pedido',
		Ped.Prazo_entrega 		AS 'Prazo de Entrega',
		Prod.Descricao_produto 	AS 'Produto',
		Cli.UF 					AS 'Estado'
FROM Clientes Cli INNER JOIN Pedidos Ped 
			ON Cli.Codigo_cliente = Ped.Codigo_cliente
		INNER JOIN Item_de_Pedido Item 
			ON Ped.Numero_pedido = Item.Numero_pedido
		INNER JOIN Produtos Prod 
			ON Prod.Codigo_produto = Item.Codigo_produto
WHERE Ped.Prazo_entrega > 15 AND Cli.UF = 'RJ' AND Prod.Descricao_produto = 'Queijo'
ORDER BY Cli.Nome_cliente
GO
-- Exibir todos os vendedores que venderam chocolate em quantidade superior a dez quilos
-- Exibir o nome do vendedor, o produto e a quantidade vendida
SELECT	V.Nome_vendedor 		AS 'Vendedor',
		Prod.Descricao_produto 	AS 'Produto',
		Item.Quantidade 		AS 'Quantidade (Kg)'
FROM Vendedores V INNER JOIN Pedidos Ped 
			ON V.Codigo_vendedor = Ped.Codigo_vendedor
		INNER JOIN Item_de_Pedido Item 
			ON Ped.Numero_pedido = Item.Numero_pedido
		INNER JOIN Produtos Prod 
			ON Prod.Codigo_produto = Item.Codigo_produto
WHERE Prod.Descricao_produto = 'Chocolate' AND Item.Quantidade > 10
GO
-- Mesma consulta anterior, porém exibindo somente o nome do vendedor
-- que vendeu mais de 10 quilos de qualquer produto
SELECT	DISTINCT V.Nome_vendedor AS 'Vendedor'
FROM Vendedores V INNER JOIN Pedidos Ped 
			ON V.Codigo_vendedor = Ped.Codigo_vendedor
		INNER JOIN Item_de_Pedido Item 
			ON Ped.Numero_pedido = Item.Numero_pedido
		INNER JOIN Produtos Prod 
			ON Prod.Codigo_produto = Item.Codigo_produto
WHERE Item.Quantidade > 10
GO
-- Verificando quantos clientes fizeram compras com o vendedor Antônio
SELECT	COUNT(C.Codigo_cliente) AS 'Total de Vendas - Antônio'
FROM Clientes C INNER JOIN Pedidos P 
			ON C.Codigo_cliente = P.Codigo_cliente
		INNER JOIN Vendedores V 
			ON P.Codigo_vendedor = V.Codigo_vendedor
WHERE V.Nome_vendedor = 'Antônio'
GO
-- Quantos clientes da cidade do Rio de Janeiro e de Niterói tiveram 
-- seus pedidos feitos pelo vendedor Antônio
-- Exibir a cidade e o total de vendas efetuadas pelo vendedor
SELECT	C.Cidade, 
		COUNT(C.Codigo_cliente) AS 'Total de Vendas - Antônio'
FROM Clientes C INNER JOIN Pedidos P 
			ON C.Codigo_cliente = P.Codigo_cliente
		INNER JOIN Vendedores V 
			ON P.Codigo_vendedor = V.Codigo_vendedor
WHERE V.Nome_vendedor = 'Antônio' AND C.Cidade In ('Rio de Janeiro', 'Niterói')
GROUP BY C.Cidade
GO

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando