Você está na página 1de 11

RELATÓRIO DE ANÁLISE

DE NEGÓCIOS
PROJETO SQL LITE E MYSQL

8 DE AGOSTO DE 2021
SANDIA VB
1) Escreva uma consulta para exibir os detalhes do produto (product_class_code,
product_id, product_desc, product_price,) de acordo com os seguintes critérios e
classifique-os em ordem decrescente de categoria: a. Se a categoria for 2050,
aumentar o preço em 2000 b. Se a categoria for 2051, aumente o preço em 500 c. Se a
categoria for 2052, aumente o preço em 600. Dica: use a instrução case. nenhuma
mudança permanente na tabela é necessária. (60 LINHAS) [NOTA: TABELA DE
PRODUTOS]

SELECIONE P.PRODUCT_CLASS_CODE, P.PRODUCT_ID, P.PRODUCT_DESC,


CASO P.PRODUCT_CLASS_CODE
QUANDO 2050 ENTÃO P.product_price + 2000
QUANDO 2051 ENTÃO P.product_price + 500
QUANDO 2052 ENTÃO P.product_price + 600
OUTRO P.PRODUCT_PRICE
FIM DO PRODUCT_PRICE
DO PRODUTO P
INNER JOIN PRODUCT_CLASS PC
EM P.PRODUCT_CLASS_CODE = PC.PRODUCT_CLASS_CODE
ORDER BY P.PRODUCT_CLASS_CODE desc;

PRODUCT_CLASS_CODE ID DO PRODUTO PRODUCT_DESC PREÇO DO


PRODUTO
6 3001 99996 Nokia Asha 200 (grafite) 4070

7 3000 99999 Samsung Galaxy Guia 2 P3100 19300

8 3000 99998 Ponte Nikon Coolpix L810 14987

9 3000 99997 Sony Xperia U (preto branco) 16499


10 3000 99990 Hub USB de 4 portas Quanta 500
A execução terminou sem erros. Resultado: 60 linhas retornadas em 35ms Na linha 1:
SELECIONE P. PRODUCT_CLASS_CODE, P. PRODUCT_ID, P. PRODUCT_DESC, CASE P. PRODUCT_CLASS_CODE
QUANDO 2050 ENTÃO P . preço_produto + 2.000
QUANDO 2051 ENTÃO P .product_price + 500
QUANDO 2052 ENTÃO P .product_price + 600
ELSE P.PRODUCT_PRICE END PRODUCT_PRICE DO PRODUTO P
INNER JOIN PRODUCT_CLASS PC
ON P.PRODUCT_CLASS_CODE = PC .PRODUCT_CLASS_CODE ORDER BY P.PRODUCT CLASS CODE desc;
2) Escreva uma consulta para exibir (product_class_desc, product_id, product_desc,
product_quantity_avail) e mostre o status do estoque dos produtos conforme abaixo
de acordo com a quantidade disponível: a. Para as categorias Eletrônicos e
Informática, se a quantidade disponível for <= 10, mostre 'Estoque baixo', 11 <=
quantidade <= 30, mostre 'Em estoque', >= 31, mostre 'Estoque suficiente' b. Para as
categorias Papelaria e Roupas, se quantidade <= 20, mostre 'Estoque baixo', 21 <=
quantidade <= 80, mostre 'Em estoque', >= 81, mostre 'Estoque suficiente' c. Resto
das categorias, se quantidade <= 15 – 'Estoque baixo', 16 <= quantidade <= 50 – 'Em
estoque', >= 51 – 'Estoque suficiente' Para todas as categorias, se a quantidade
disponível for 0, mostre 'Esgotado' em stock'. Dica: use a instrução case. (60
LINHAS) [NOTA: TABELAS A USAR – produto, classe_produto]

SELECIONE PC.PRODUCT_CLASS_DESC AS 'Categoria do Produto', P.PRODUCT_ID AS 'ID do


Produto',
P.PRODUCT_DESC AS 'Descrição do Produto', P.PRODUCT_QUANTITY_AVAIL AS
'Disponibilidade do Produto', CASE
QUANDO PC.PRODUCT_CLASS_CODE IN (2050,2053) ENTÃO CASO
WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN 'Esgotado' - Critérios de falta de estoque
WHEN P.PRODUCT_QUANTITY_AVAIL <=10 THEN 'Estoque baixo'
WHEN (P.PRODUCT_QUANTITY_AVAIL >=11 E P.PRODUCT_QUANTITY_AVAIL <=30) THEN 'Em
estoque'
WHEN (PRODUCT_QUANTITY_AVAIL >=31) THEN 'Estoque suficiente' END
QUANDO PC.PRODUCT_CLASS_CODE IN (2052,2056) ENTÃO CASO
WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN 'Esgotado' - Critérios de falta de estoque WHEN
P.PRODUCT_QUANTITY_AVAIL <=20 THEN 'Estoque baixo'
WHEN (P.PRODUCT_QUANTITY_AVAIL >=21 E P.PRODUCT_QUANTITY_AVAIL <=80) THEN 'Em
estoque'
WHEN (PRODUCT_QUANTITY_AVAIL >=81) THEN 'Estoque suficiente' END
ELSE CASE WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN 'Esgotado' - Critério de falta de
estoque WHEN P.PRODUCT_QUANTITY_AVAIL <=15 THEN 'Estoque baixo'
WHEN (P.PRODUCT_QUANTITY_AVAIL >=16 E P.PRODUCT_QUANTITY_AVAIL <=50) THEN 'Em
estoque'
WHEN (PRODUCT_QUANTITY_AVAIL >=51) THEN 'Estoque suficiente'
FIM
TERMINAR COMO 'Status do inventário'
DO PRODUTO P
INNER JOIN PRODUCT_CLASS PC EM P.PRODUCT_CLASS_CODE =
PC.PRODUCT_CLASS_CODE
ORDER BY P.PRODUCT_CLASS_CODE,P.PRODUCT_QUANTITY_AVAIL DESC;
Categoria de ID do Descrição do produto Disponibilidade de Status do
Produto produto produto inventário
1 Eletrônicos TV LED Sky 102 CM
2D 30 Em estoque
Sistema de música Jocky Speaker
2 Eletrônicos 203 HT32 19 Em estoque
3 Eletrônicos 202 Geladeira Sams 192 L4 de porta única 15 Em estoque
4 Eletrônicos 221 Câmera Cybershot DWC-W325 5 Baixo estoque
5 Brinquedos 207 Carro de controle remoto 29 Em estoque

A execução terminou sem erros.


Resultado: 60 linhas retornadas em 36ms
Na linha 1:
SELECIONE PC.PRODUCT_CLASS_DESC COMO 'Categoria do Produto',
P.PRODUCT_ID COMO 'ID do produto',
P.PRODUCT_DESC AS 'Descrição do Produto',
P. PRODUCT_QUANTITY_AVAIL AS 'Disponibilidade do Produto', CASE
— Eletrônica (2050) e Informática (2053)
QUANDO PC . PRODUCT_CLASS_CODE IN (2050.2053) ENTÃO
CASO
WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN 'Esgotado' — Critérios de falta de estoque
WHEN P.PRODUCT_QUANTITY_AVAIL <=10 THEN ' Estoque baixo'
WHEN (P.PRODUCT_QUANTITY_AVAIL >=11 E P.PRODUCT_QUANTITY_AVAIL <=30) THEN 'Em estoque
WHEN (PRODUCT_QUANTITY_AVAIL >=31) THEN ' Estoque suficiente' END

3) Escreva uma consulta para mostrar a contagem de cidades em todos os países, exceto EUA e
MALÁSIA, com mais de 1 cidade, em ordem decrescente de CIDADES. (2 linhas) [NOTA:
TABELA DE ENDEREÇOS, não use Distinto]

SELECIONE CONTAGEM(CIDADE) COMO Contagem_de_Citações,


PAÍS COMO País
A PARTIR DO ENDEREÇO
GRUPO POR PAÍS
TENDO PAÍS NÃO EM ('EUA', 'Malásia') E CONTAGEM(CIDADE)> 1
ORDER BY Count_of_Cites DESC;

Contagem_de_c País
itações
1 Índia
26
2 6 Cingapur
a

A execução terminou sem erros.


Resultado: 2 linhas retornadas em 19ms
Na linha 1:
SELECIONE COUNT (CITY) AS Count_of_cites, - Contagem das cidades COUNTRY AS Country
A PARTIR DO ENDEREÇO
GRUPO POR PAÍS
— Contagem de cidades maior que 1 e excluindo os EUA e a Malásia
HAVING COUNTRY NOT IN (' USA " Malaysia " ) AND COUNT(CITY) > 1 — Ordem decrescente de
contagem de cidades
ORDER BY Count_of_Cites DESC;
4) Escreva uma consulta para exibir o ID do cliente, o nome completo do cliente, a cidade, o
código PIN e os detalhes do pedido (ID do pedido, descrição da classe do produto, descrição
do produto, subtotal (quantidade_do produto * preço_do produto)) para pedidos enviados
para cidades cujos códigos PIN não possuem 0s neles. Classifique a saída pelo nome do
cliente e subtotal. (52 LINHAS) [NOTA: TABELA A SER UTILIZADA - online_customer,
address, order_header, order_items, product, product_class]

SELECIONE OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME ||' '|| OC.CUSTOMER_LNAME) COMO


CUSTOMER_FULL_NAME, A.CITY, A.PINCODE, O.ORDER_ID, O.ORDER_DATE,
PC.PRODUCT_CLASS_DESC, P.PRODUCT_DESC, (OI.PRODUCT_QUANTITY *P.PRODUCT_PRICE) COMO
SUBTOTAL DE ONLINE_CUSTOMER OC
ENDEREÇO INNER JOIN A ON OC.ADDRESS_ID = A.ADDRESS_ID LEFT JOIN (
SELECIONE CUSTOMER_ID, MAX(ORDER_ID) COMO ORDER_ID, ORDER_DATE
DO GRUPO ORDER_HEADER POR CUSTOMER_ID) O ON OC.CUSTOMER_ID = O.CUSTOMER_ID LEFT JOIN
(
SELECIONE ORDER_ID,
SUM(PRODUCT_QUANTITY) COMO PRODUCT_QUANTITY, PRODUCT_ID
DE ORDER_ITEMS
GRUPO POR ORDER_ID
) OI EM O.ORDER_ID = OI.ORDER_ID
ESQUERDA JUNTE O PRODUTO P EM OI.PRODUCT_ID = P.PRODUCT_ID
ESQUERDA ENTRAR NO PRODUCT_CLASS PC EM P.PRODUCT_CLASS_CODE =
PC.PRODUCT_CLASS_CODE
ONDE CAST(A.PINCODE AS INTEGER) NÃO COMO '%0%'
PEDIDO POR OC.CUSTOMER_FNAME, O.ORDER_DATE, SUBTOTAL

DATA DO
MER_ID CLIENTE_FULL_NAME CIDADE CÓDIGO PIN ORDER_ID
PEDIDO
PRODUCT_CLASS_DESC PRODUCT_DESC SUBTOTAL '

1 30 Anita Kohli Amherst 14228 10059 NU Eletrônicos Câmera Cybershot DWC-W325 5300

2 19 Bharti Subhash Dharmapuri 635897 10054 NULO Roupas Pijama Infantil Azul 750

3 10 Bid han C.Roy Hosur 635235 10070 NU Papelaria Calculadora de mesa Kasyo DJ-2100 1014
Sistema de música Jocky Speaker
4 24 Brian Grazer Abington 2351 10047 Eletrônicos HT32 17800

< >
A execução terminou sem erros .
Resultado: 18 linhas retornadas em 33ms
Na linha 1:
SELECIONE OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME ||' '|| OC.CUSTOMER_LNAME) COMO
CUSTOMER_FULL_NAME, A. CITY, A. PINCODE, O.ORDER_TD,
Ó . ORDER_DATE , PC. PRODUCT_CLASS_DESC , P . PRODUCT_DESC ,
(OI. PRODUCT_OUANTITY*P. PRODUCT_PRICE) COMO SUBTOTAL
DE ONLTNE_CUSTOMER OC
ENDEREÇO INNER JOIN A NO OC. ADDRESS_ID = A.ADDRESS_ID LEFT JOIN

5) Escreva uma consulta para exibir o ID do produto, descrição do produto, quantidade total
(soma (quantidade do produto) para um item que foi comprado no máximo de vezes
(Quantidade Wise) junto com o ID do produto 201. (USE SUB-QUERY) (1 LINHA) [NOTA:
TABELA ORDER_ITEMS, TABELA DE PRODUTOS]

SELECIONE OI.PRODUCT_ID,P.PRODUCT_DESC, SUM(OI.PRODUCT_QUANTITY) AS Total_Quantity


FROM ORDER_ITEMS OI
INNER JOIN PRODUTO P EM P.PRODUCT_ID = OI.PRODUCT_ID
ONDE OI.ORDER_ID ESTÁ
(
SELECIONE DISTINTO
ORDER_ID
DE
PEDIDO_ITEMS A
ONDE
PRODUTO_ID = 201
)
E OI.PRODUCT_ID <> 201
GRUPO POR OI.PRODUCT_ID
PEDIR POR Total_Quantidade DESC
LIMITE 1;

PRODUCT_ID PRODUCT_DESC Total_Quantidade

1 Caneta esferográfica com ponta do dedo 218 Shell 30

A execução terminou sem erros.


Resultado: 1 linha retornada em 14ms
Na linha 1:
SELECIONE OI. PRODUCT_ID, P . PRODUCT_DESC, SOMA (OI . PRODUCT_QUANTITY) AS Total_Quantity
FROM ORDER ITEMS OI

6) Escreva uma consulta para exibir o ID do cliente, o nome do cliente, o e-mail e os detalhes do
pedido (ID do pedido, descrição do produto, quantidade do produto, subtotal
(quantidade_do produto * preço_do produto)) para todos os clientes, mesmo que eles não
tenham solicitado nenhum item. (225 LINHAS) [NOTA : TABELA A SER USADA -
online_customer, order_header, order_items, product]
SELECIONE OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME ||' '|| OC.CUSTOMER_LNAME) COMO
CUSTOMER_FULL_NAME, OC.CUSTOMER_EMAIL, O.ORDER_ID,
P.PRODUCT_DESC, OI.PRODUCT_QUANTITY, (OI.PRODUCT_QUANTITY*P.PRODUCT_PRICE) COMO
SUBTOTAL DE ONLINE_CUSTOMER OC
ENDEREÇO DE JUNÇÃO INTERNA A EM OC.ADDRESS_ID = A.ADDRESS_ID
ESQUERDA JOIN ORDER_HEADER O EM OC.CUSTOMER_ID =
O.CUSTOMER_ID
LEFT JOIN ORDER_ITEMS OI EM O.ORDER_ID =
OI.ORDER_ID
ESQUERDA JUNTE-SE AO PRODUTO P EM OI.PRODUCT_ID =
P.PRODUCT_ID
ESQUERDA JOIN PRODUCT_CLASS PC LIGADO
P.PRODUCT_CLASS_CODE = PC.PRODUCT_CLASS_CODE
QUANTIDADE DE SUBTOTAL A
CLIENTERJD CLIENTE_FULL_NAME EMAIL DO CLIENTE PEDIDO JD PRODUCT_DESC
PRODUTO
206 40Paul Haggis paul_haggis@gmail.com 10053 Forno Microondas Sams 21L 6880
1
NUL NUL
207 41 Tharman Shanmugaratnam tharshan@yahoo.co.sg 10066 NULO O\ O
NUL NUL
208 42Rebeca Lim reblim@msn.co.sg NULO NULO O\ O
209 43 Rajiv Chandrasekaran raj iv_cha n @ya h oo. co. Fibra para varinha mágica 10051 Solmo 1 1415
em
Copiadora 10051 PK A4 75 GSM Papel
210 43 Rajiv Chandrasekaran raj iv_cha n @ya hoo. co. em Branco ... 5 1425 v

A execução terminou sem erros.
Resultado: 225 linhas retornadas em 114ms
Na linha 1 :
SELECIONE OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME II' 'll OC.CUSTOMER_LNAME) COMO CUSTOMER_FULL_NAME, OC.CUSTOMER_EMAIL, O.ORDER_ID,
P. _ PRODUC T_DE SC, OI . PRODUC T_QUANT IT Y , (O1.PRODUCT_OUANTITY*P.PRODUCT_PRICE) COMO SUBTOTAL
DE ONLINE_CUSTOMER OC
ENDEREÇO DE JUNÇÃO INTERNA A EM OC.ADDRESS_ID = A.ADDRESS_ID
LEFT JOIN ORDER_HEADER O ON OC.CUSTOMER_ID = O.CTSTOMFR TD

7) Escreva uma consulta para exibir o ID da caixa, (len*largura*altura) como carton_vol e


identifique a caixa ideal (caixa com o menor volume cujo volume é maior que o volume total
de todos os itens (len * largura * altura * quantidade_produto)) para um determinado
pedido cujo ID do pedido é 10006. Suponha que todos os itens de um pedido sejam
embalados em uma única caixa (caixa). (1 LINHA) [NOTA: TABELA DE CARTÃO]

SELECIONE C.CARTON_ID, (C.LEN*C.WIDTH*C.HEIGHT) como VOL


DE PEDIDOS.CAIXA C
ONDE (C.LEN*C.WIDTH*C.HEIGHT) >= (
SELECIONAR
SOMA(P.LEN*P.WIDTH*P.HEIGHT*PRODUCT_QUANTITY) COMO VOL
FROM ORDERS.ORDER_HEADER OH
INNER JOIN ORDERS.ORDER_ITEMS OI EM OH.ORDER_ID = OI.ORDER_ID
INNER JOIN ORDERS.PRODUCT P ON OI.PRODUCT_ID =
P.PRODUCT_ID
WHERE OH.ORDER_ID =10006 ## Filtrado o único endereço
)
ORDENAR POR (C.LEN*C.WIDTH*C.HEIGHT) ASC
LIMITE 1;
CAIXA JD volume

► 40 1215000000

8) Escreva uma consulta para exibir detalhes (ID do cliente, nome completo do cliente, ID do
pedido, quantidade do produto) de clientes que compraram mais de dez (ou seja, quantidade
total do pedido) produtos por pedido enviado. (11 LINHAS) [NOTA: TABELAS A SEREM
USADAS - online_customer, order_header, order_items,]

SELECIONE OC.CUSTOMER_ID COMO Customer_ID,


CONCAT(CUSTOMER_FNAME,' ',CUSTOMER_LNAME) AS Cliente_FullName, OH.ORDER_ID AS
Order_ID,
SOMA(OI.PRODUCT_QUANTITY) AS Total_Order_Quantity
DE ONLINE_CUSTOMER OC
INNER JOIN ORDER_HEADER OH ON OH.CUSTOMER_ID = OC.CUSTOMER_ID - Para conectar os
detalhes do pedido e do cliente.
INNER JOIN ORDER_ITEMS OI ON OI.ORDER_ID = OH.ORDER_ID -- Para buscar a quantidade do
produto. WHERE OH.ORDER_STATUS = 'Shipped' - Para verificar se order_status foi
enviado.
GRUPO POR OH.ORDER_ID
HAVING Total_Order_Quantity > 10 – Para verificar se a qualidade total do pedido é
maior que 10. PEDIDO POR CLIENTE_ID;

Identificação do
Cliente Cliente_NomeCompleto ID_pedido Total_Pedido_Quantidade
► 2 Jackson Davis 10002 16
2 Jackson Davis 10012 23

3 Komai Choudhary 10007 53


5 Ramya Ravinder 10003 12
6 Anita Goswami 10006 É
6 Anita Goswami 10010 11

6 Anita Goswami 10017 14


7 Ashwathi Bhatt 10008 25

Grade de resultados EE t Filtrar linhas: Exportar: E)Conteúdo da célula


envolvente: 1A
9) Escreva uma consulta para exibir o order_id, o ID do cliente e o nome completo do cliente
junto com (product_quantity) como a quantidade total de produtos enviados para os IDs do
pedido> 10060. (6 LINHAS) [NOTA: TABELAS A SEREM USADAS - online_customer,
order_header, order_items ]

SELECIONAR
OC.CUSTOMER_ID AS Cliente_ID,
CONCAT(CUSTOMER_FNAME,' ',CUSTOMER_LNAME) AS Cliente_FullName, OH.ORDER_ID AS
Order_ID,
SOMA(OI.PRODUCT_QUANTITY) AS Total_Order_Quantity
DE ONLINE_CUSTOMER OC
INNER JOIN ORDER_HEADER OH ON OH.CUSTOMER_ID = OC.CUSTOMER_ID - Para conectar os
detalhes do pedido e do cliente.
INNER JOIN ORDER_ITEMS OI ON OI.ORDER_ID = OH.ORDER_ID -- Para buscar a
quantidade do produto.
WHERE OH.ORDER_STATUS = 'Shipped' AND OH.ORDER_ID > 10060 - Para verificar se
order_status foi enviado.
GRUPO POR OH.ORDER_ID
ORDER BY Cliente_NomeCompleto;

Grade de resultados EE t Filtrar linhas:


Identificação do
Cliente
Cliente_NomeCompleto ID_pedido Total_Pedido_Quantidade

► 51 Ahmad Bin Gh Azali 10068 3


23 Anna Pinnock 10069 4

10 Bidhan C.Roy 10070 3


37 James Newton Howard 10061 1
13 Suresh Babu 10063 3
35 Thomas Newman 10064 3

10) Escreva uma consulta para exibir a descrição da classe de produto, a quantidade total (soma
(quantidade do produto), o valor total (quantidade do produto * preço do produto) e mostre
qual classe de produtos foi enviada mais alta (quantidade) para países fora da Índia, exceto
os EUA? Mostre também o valor total desses itens. (1 LINHAS)[NOTA: TABELA DE
PRODUTOS, TABELA DE ENDEREÇOS, TABELA DE CLIENTES ONLINE, TABELA
DE ORDER_HEADER, TABELA DE ORDER_ITEMS, TABELA DE CLASSES DE
PRODUTOS]

SELECIONE PC.PRODUCT_CLASS_CODE COMO Product_Class_Code,

PC.PRODUCT_CLASS_DESC AS Product_Class_Description,

SOMA(OI.PRODUCT_QUANTITY) AS Quantidade_Total,

SOMA(OI.PRODUCT_QUANTITY*P.PRODUCT_PRICE) AS Valor_Total

FROM ORDER_ITEMS OI

INNER JOIN ORDER_HEADER OH ON OH.ORDER_ID = OI.ORDER_ID - Junte-se para conectar


o cliente on-line

INNER JOIN ONLINE_CUSTOMER OC ON OC.CUSTOMER_ID = OH.CUSTOMER_ID

INNER JOIN PRODUTO P EM P.PRODUCT_ID = OI.PRODUCT_ID

INNER JOIN PRODUCT_CLASS PC EM PC.PRODUCT_CLASS_CODE = P.PRODUCT_CLASS_CODE

ENDEREÇO DE JUNÇÃO INTERNA A EM A.ADDRESS_ID = OC.ADDRESS_ID .


WHERE OH.ORDER_STATUS ='Enviado' E A.COUNTRY NOT IN('Índia','EUA')

GRUPO POR PC.PRODUCT_CLASS_CODE,PC.PRODUCT_CLASS_DESC

ORDER BY Total_Quantity DESC - Ordenar por Total_Quality

LIMITE 1;

Você também pode gostar