Você está na página 1de 13

Análise e Desenvolvimento de Sistemas – Banco de Dados

Tabela Resultado Final


1. Qual o total em R$ de todas as Notas Fiscais?

2. Quantos cliente a empresa possui?

3. Se a empresa vendesse tudo quanto ela teria


arrecadado?

4. Qual o lucro que ela teria se vendesse todas os HDs


que tem no estoque?
Drop Table If Exists TB_NFItem;
Drop Table If Exists TB_NF;
Drop Table If Exists TB_Produto;
Drop Table If Exists TB_Cliente;
Go

Create Table TB_Cliente (


ID_Cliente Int Identity( 1, 1),
Nm_Cliente Varchar(256) Not Null,
ID_UF Varchar(2) Not Null,
Nr_Telefone Numeric(10) Not Null,
Nt_Celular Numeric(10) Not Null,
Primary Key (ID_Cliente)
);

Create Table TB_Produto (


ID_Produto Int Identity( 321, 1),
Ds_Produto Varchar(256) Not Null,
Pr_Venda Numeric(10,2) Not Null,
Pr_Compra Numeric(10,2) Not Null,
Qt_Estoque Int Not Null,
Primary Key (ID_Produto)
);

Create Table TB_NF (


Nr_NF Int Identity( 100101, 1),
Dt_NF Date Not Null,
Vl_NF Numeric(10,2) Not Null,
ID_Cliente Int Not Null,
Primary Key (Nr_NF),
Foreign Key (ID_Cliente) References TB_Cliente(ID_Cliente)
);

Create Table TB_NFItem (


Nr_NFItem Int,
Nr_Nf Int Not Null,
ID_Produto Int Not Null,
Qt_Vendida Int Not Null,
Pr_Unitario Numeric(10,2) Not Null,
Vl_SubTotal Numeric(10,2) Not Null,
Primary Key (Nr_NFItem, Nr_NF, ID_Produto),
Foreign Key (Nr_Nf) References TB_NF(Nr_Nf),
Foreign Key (ID_Produto) References TB_Produto(ID_Produto)
);

Insert Into TB_Cliente(Nm_Cliente, ID_UF, Nr_Telefone, Nt_Celular) Values


('JOAO', 'SP', 1155880101, 1198800101);
Insert Into TB_Cliente(Nm_Cliente, ID_UF, Nr_Telefone, Nt_Celular) Values
('MARIA', 'MG', 1155880202, 1198800202);
Insert Into TB_Cliente(Nm_Cliente, ID_UF, Nr_Telefone, Nt_Celular) Values
('MARCOS', 'BA', 1155880303, 1198800303);
Insert Into TB_Cliente(Nm_Cliente, ID_UF, Nr_Telefone, Nt_Celular) Values
('ANTONIO', 'SP', 1155880404, 1198800404);
Insert Into TB_Cliente(Nm_Cliente, ID_UF, Nr_Telefone, Nt_Celular) Values
('GABRIELA', 'RJ', 1155880505, 1198800505);

Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values


('MONITOR LCD LG', 250, 150, 20);
Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values
('MONITOR LCD PHILIPS', 300, 200, 15);
Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values
('IMPRESSORA EPSON MOD1', 150, 350, 10);
Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values
('HD Externo 1T SEAGATE', 320, 200, 100);
Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values
('HD Externo 2T SEAGATE', 399, 250, 120);
Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values
('HD Interno 4T SEAGATE BARRACUDA', 679.9, 400, 120);
Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values
('CABO SATA PLUS', 3.9, 1.5, 500);
Insert Into TB_Produto(Ds_Produto, Pr_Venda, Pr_Compra, Qt_Estoque) Values
('CABO ADAPTADOR USB3 SSD SATA', 49.9, 30, 10);

Insert Into TB_NF(Dt_NF, Vl_NF, ID_Cliente) Values ('11/01/2020', 250, 1);


Insert Into TB_NF(Dt_NF, Vl_NF, ID_Cliente) Values ('11/02/2020', 78, 2);
Insert Into TB_NF(Dt_NF, Vl_NF, ID_Cliente) Values ('11/02/2020', 323.9,
3);
Insert Into TB_NF(Dt_NF, Vl_NF, ID_Cliente) Values ('11/03/2020', 679.9,
4);

Insert Into TB_NFItem(Nr_NFItem, Nr_Nf, ID_Produto,Qt_Vendida,


Pr_Unitario, Vl_SubTotal) Values (1, 100101, 321, 1, 250, 250);
Insert Into TB_NFItem(Nr_NFItem, Nr_Nf, ID_Produto,Qt_Vendida,
Pr_Unitario, Vl_SubTotal) Values (1, 100102, 327, 20, 3.9, 78);
Insert Into TB_NFItem(Nr_NFItem, Nr_Nf, ID_Produto,Qt_Vendida,
Pr_Unitario, Vl_SubTotal) Values (1, 100103, 324, 1, 320, 320);
Insert Into TB_NFItem(Nr_NFItem, Nr_Nf, ID_Produto,Qt_Vendida,
Pr_Unitario, Vl_SubTotal) Values (2, 100103, 327, 1, 3.9, 3.9);
Insert Into TB_NFItem(Nr_NFItem, Nr_Nf, ID_Produto,Qt_Vendida,
Pr_Unitario, Vl_SubTotal) Values (1, 100104, 326, 1, 679.9, 679.9);

(Q01) Exiba todas as NF existentes:


Select * From TB_NF;

(Q02) Altere o preço de venda para R$ 399,90 de todos os


produtos que custarem R$ 410,00:
Update TB_Produto
Set Pr_Venda = 399.9
Where Pr_Venda = 410;

*Não existem produtos com valor igual a 410,00


(Q03) Elimine o cliente MARCOS:
Delete From TB_Cliente
Where Nm_Cliente Like 'MARCOS';

*Não é possível excluir o cliente MARCOS pois seu ID


está sendo referenciado em outra tabela.

(Q04) Liste todas as NFs em que o total for superior a R$


260,00:
Select * From TB_NF
Where Vl_NF > 260;

(Q05) Altere a quantidade vendida para 21 e o subtotal da


NF 100102 item comprado 327:
Update TB_NFItem
Set Qt_Vendida = 21, Vl_SubTotal = 21
Where Nr_Nf = 100102 And ID_Produto = 327;

(Q06) Atualize o valor total da NF 100102:


Update TB_NF
Set Vl_NF = 80
Where Nr_NF = 100102;
(Q07) Listetodos os clientes que forem de São Paulo:
Select * From TB_Cliente
Where ID_UF = 'SP';

(Q08) Exiba todos os produtos que tiverem na sua descrição


a palavra "HD":
Select * From TB_Produto
Where Ds_Produto Like '%HD%';

(Q09) Elimine todos os clientes que começarem por ‘G’:


Delete From TB_Cliente
Where Substring(Nm_Cliente, 1, 1) = 'G';

(Q10) Elimine o produto 321:


Delete From TB_Produto
Where ID_Produto = 321;

*Não é possível excluir o produto 321pois seu ID está


sendo referenciado em outra tabela.
(Q11) Transforme todas as descrições dos produtos em
maiúsculo:
Update TB_Produto
Set Ds_Produto = UPPER(Ds_Produto) ;

(Q12) Elimine todas as NF superior a R$ 690,00:


Delete From TB_NF
Where Vl_NF > 690;

*Não existem NF’s com valor Superior a 690,00

(Q13) Exiba o total de vendas do cliente 1:


Select * From TB_NF
Where ID_Cliente = 1;

(Q14) Liste a quantidade de clientes do Minas Gerais:


Select count(ID_Cliente) As Qt_ClienteMG
From TB_Cliente
Where ID_UF = 'MG';
(Q15) Elimine todas as impressoras da EPSON do arquivo de
produtos:
Delete From TB_Produto
Where Ds_Produto Like '%EPSON%';

(Q16) Liste todos os produtos que começarem por “C”:


Select * From TB_Produto
where Substring(Ds_Produto, 1, 1) = 'C';

(Q17) Exclua todos os produtos que o preço de venda for


entre R$ 1.000,00 e R$ 1.500,00:
Delete From TB_Produto
Where Pr_Venda Between 1000 And 1500

(Q18) Adicione 15% ao preço de venda do produto 321:


Update TB_Produto
Set Pr_Venda *= 1.15
Where ID_Produto = 321;
(Q19) Liste todas os Números de NF que contiverem o número
101:
Select * From TB_NF
Where Nr_NF Like '%101%';

(Q20) Elimine os itens da NF 100103:


Delete From TB_NFItem
Where Nr_Nf = 100103;

(Q21) Liste todas os Números de NF, Data de NF, Total da NF


e o código do produto vendido e sua descrição:
Select TB_NF.Nr_Nf, TB_NF.Dt_NF, TB_NF.Vl_NF, TB_Produto.ID_Produto
From TB_NFItem
Inner Join TB_NF
On TB_NFItem.Nr_Nf = TB_NF.Nr_NF
Inner Join TB_Produto
On TB_NFItem.ID_Produto = TB_Produto.ID_Produto;

(Q22) Elimine a NF 100103:


Delete From TB_NF
Where Nr_NF = 100103;
(Q23) Exiba o nome do cliente, a data da NF e o total da
NF:
Select TB_Cliente.Nm_Cliente, TB_NF.Dt_NF, TB_NF.Vl_NF
From TB_NF
Inner Join TB_Cliente
On TB_NF.ID_Cliente = TB_Cliente.ID_Cliente;

(Q24) Elimine todos os clientes que tenham no nome a


palavra MARCOS:
Delete From TB_Cliente
Where Nm_Cliente Like '%MARCOS%';

(Q25) Exiba o nome do cliente, seu telefone e celular


formatados: (99) 9999-9999:
Select Nm_Cliente,
'('
+ Substring(Convert(Varchar(11), Nr_Telefone),1,2)
+ ')'
+ ' '
+ Substring(Convert(Varchar(11), Nr_Telefone),3,4)
+ '-'
+ Substring(Convert(Varchar(11), Nr_Telefone),7,4)
as Nr_Telefone,
'('
+ Substring(Convert(Varchar(11), Nr_Celular),1,2)
+ ')'
+ ' '
+ Substring(Convert(Varchar(11), Nr_Celular),3,4)
+ '-'
+ Substring(Convert(Varchar(11), Nr_Celular),7,4)
as Nr_Celular
From TB_Cliente
Script Para As Respostas Das Questões:
Update TB_Produto
Set Pr_Venda = 399.9
Where Pr_Venda = 410;

Select * From TB_Cliente;

Delete From TB_Cliente


Where Nm_Cliente Like 'MARCOS';

Select * From TB_NF


Where Vl_NF > 260;

Select * From TB_NFItem


Where Nr_Nf = 100102 And ID_Produto = 327;

Update TB_NFItem
Set Qt_Vendida = 21, Vl_SubTotal = 21
Where Nr_Nf = 100102 And ID_Produto = 327;

Select * From TB_NF


where Nr_NF = 100102;

Update TB_NF
Set Vl_NF = 80
Where Nr_NF = 100102;

Select * From TB_Cliente


Where ID_UF = 'SP';

Select * From TB_Produto


Where Ds_Produto Like '%HD%';

Select * From TB_Cliente


where Substring(Nm_Cliente, 1, 1) = 'G';

Delete From TB_Cliente


Where Substring(Nm_Cliente, 1, 1) = 'G';

Delete From TB_Produto


Where ID_Produto = 321;

Select Ds_Produto from TB_Produto;

Update TB_Produto
Set Ds_Produto = UPPER(Ds_Produto);

Delete From TB_NF


Where Vl_NF > 690;

Select * From TB_NF


Where ID_Cliente = 1;

Select count(ID_Cliente) As Qt_ClienteMG


From TB_Cliente
Where ID_UF = 'MG';

Delete From TB_Produto


Where Ds_Produto Like '%EPSON%';

Select * From TB_Produto


where Substring(Ds_Produto, 1, 1) = 'C';

Delete From TB_Produto


Where Pr_Venda Between 1000 And 1500;

Select Pr_Venda From TB_Produto


Where ID_Produto = 321;

Update TB_Produto
Set Pr_Venda *= 1.15
Where ID_Produto = 321;

Select * From TB_NFItem


Where Nr_NF Like '%101%'

Delete From TB_NFItem


Where Nr_Nf = 100103

Select TB_NF.Nr_Nf, TB_NF.Dt_NF, TB_NF.Vl_NF, TB_Produto.ID_Produto


From TB_NFItem
Inner Join TB_NF
On TB_NFItem.Nr_Nf = TB_NF.Nr_NF
Inner Join TB_Produto
On TB_NFItem.ID_Produto = TB_Produto.ID_Produto;

Delete From TB_NF


Where Nr_NF = 100103;

Select TB_Cliente.Nm_Cliente, TB_NF.Dt_NF, TB_NF.Vl_NF


From TB_NF
Inner Join TB_Cliente
On TB_NF.ID_Cliente = TB_Cliente.ID_Cliente;

Delete From TB_Cliente


Where Nm_Cliente Like '%MARCOS%';

Select Nm_Cliente,
'('
+ Substring(Convert(Varchar(11), Nr_Telefone),1,2)
+ ')'
+ ' '
+ Substring(Convert(Varchar(11), Nr_Telefone),3,4)
+ '-'
+ Substring(Convert(Varchar(11), Nr_Telefone),7,4)
as Nr_Telefone,
'('
+ Substring(Convert(Varchar(11), Nr_Celular),1,2)
+ ')'
+ ' '
+ Substring(Convert(Varchar(11), Nr_Celular),3,4)
+ '-'
+ Substring(Convert(Varchar(11), Nr_Celular),7,4)
as Nr_Celular
From TB_Cliente

Script Para Tabela Final:


Select Sum(Vl_NF) As Vl_TodasNFs
From TB_NF;

Select Count(ID_Cliente) As Qt_TotalClientes


From TB_Cliente;

Select Sum(Pr_Venda * Qt_Estoque) As Pr_TotalVendas


From TB_Produto;

Select Sum(Pr_Venda - Pr_Compra) As Vl_LucroTotal


From TB_Produto
Where Ds_Produto Like '%HD%';

Você também pode gostar