Consulta sql com 3 tabelas

T-SQL – INNER JOIN – Selecionar dados de três tabelas – SQL Server

Olá Pessoal.

Nesta vídeo aula vamos aprender passo a passo montar uma consulta sql com três tabelas.

Abraços.

Adilson Paranhos 

Segue abaixo o script usado na vídeo aula  do Youtube:

 

 

 

 


use master
go


/*Criar o banco de dados vendas */

create database bd_vendas_carro
go

/*Seleciona o banco de dados */

use bd_vendas_carro
go

/*Criar tabela tab_cupom */

create table tab_cupom_vendas (
id_cupom int identity(1,1000),
data_venda datetime,
valor float,
id_produto int,
id_cliente int
)

go

/* Insere registros/ Popular a tabela vendas */


DECLARE @numero INT;
SET @numero=0;
WHILE @numero< 10
BEGIN
INSERT tab_cupom_vendas ( data_venda,valor, id_produto, id_cliente)
VALUES ( dateadd(d,-1*@numero,getdate()), @numero * 10000, 10,1)
SET @numero = @numero + 1;
END
go

DECLARE @numero INT;
SET @numero=0;
WHILE @numero< 10
BEGIN
INSERT tab_cupom_vendas ( data_venda,valor, id_produto, id_cliente)
VALUES ( dateadd(d,-1*@numero,getdate()), @numero * 10000,20, 2)
SET @numero = @numero + 1;
END
go


DECLARE @numero INT;
SET @numero=0;
WHILE @numero< 10
BEGIN
INSERT tab_cupom_vendas ( data_venda,valor, id_produto,id_cliente)
VALUES ( dateadd(d,-1*@numero,getdate()), @numero * 10000, 30,3)
SET @numero = @numero + 1;
END
go

DECLARE @numero INT;
SET @numero=0;
WHILE @numero< 10
BEGIN
INSERT tab_cupom_vendas ( data_venda,valor, id_produto,id_cliente)
VALUES ( dateadd(d,-1*@numero,getdate()), @numero * 10000, 40,4)
SET @numero = @numero + 1;
END
go


DECLARE @numero INT;
SET @numero=0;
WHILE @numero< 10
BEGIN
INSERT tab_cupom_vendas ( data_venda,valor, id_produto,id_cliente)
VALUES ( dateadd(d,-1*@numero,getdate()), @numero * 10000, 50,5)
SET @numero = @numero + 1;
END

update tab_cupom_vendas set valor =5000
where valor =0


go

/*Criar tabela produto */

create table tab_produto (
id_produto int,
produto_desc nvarchar(50)
)

go

/*Popula tabela tab_produto */

insert into bd_vendas_carro.dbo.tab_produto values (10,’Fusca’)
go

insert into bd_vendas_carro.dbo.tab_produto values (20,’BMW’)
go

insert into bd_vendas_carro.dbo.tab_produto values (30,’Honda Civic’)
go

insert into bd_vendas_carro.dbo.tab_produto values (40,’Mercedez ‘)
go

insert into bd_vendas_carro.dbo.tab_produto values (50,’Ferrari ‘)
go

/*Criar a tabela cliente */

create table tab_cliente
( id_cliente int,
nome_cliente nvarchar(50)
)
go

/*Popula a tabela cliente */

insert into bd_vendas_carro.dbo.tab_cliente values (1, ‘Bruno Campos’ )
go

insert into bd_vendas_carro.dbo.tab_cliente values (2, ‘Miguel souza’ )
go

insert into bd_vendas_carro.dbo.tab_cliente values (3, ‘Fabio Camargo’ )
go

insert into bd_vendas_carro.dbo.tab_cliente values (4, ‘Rodrigo Afonso’ )
go

insert into bd_vendas_carro.dbo.tab_cliente values (5, ‘Camila Pereira’ )
go

/*Junções com três tabelas */

–Esquema das três tabelas
select top(5) * from bd_vendas_carro.dbo.tab_cupom_vendas
go

select top(5) * from bd_vendas_carro.dbo.tab_produto
go

select top(5) * from bd_vendas_carro.dbo.tab_cliente
go

–Consulta com as junções de três

select
cliente.nome_cliente,
prod.produto_desc,
format (cupom.data_venda,’dd/MM/yyyy HH:mm:ss’) as Dt_VendaBR,
format(cupom.valor,’c’,’pt-br’ ) as ValorRS

from bd_vendas_carro.dbo.tab_cupom_vendas as cupom
inner join bd_vendas_carro.dbo.tab_cliente as cliente
on cupom.id_cliente = cupom.id_cliente

inner join bd_vendas_carro.dbo.tab_produto as prod
on prod.id_produto = cupom.id_produto

 

Sobre Adilson Paranhos 7 Artigos
Formado em Analise e Desenvolvimento de Sistemas, experiência há mais de 10 anos. Amo aprender, ensinar, compartilhar e simplificar coisas... Linguagem T-SQL, consultas básicas e avançadas, filtros, agrupamentos, junções, funções, views, funções de sistemas

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será publicado.


*