# Banco de Dados Session Four
## Query or not to Query? QUERY!!!!
autor: Guilherme Oliveira Verissimo
turma: InfoC
nĂºmero: 21
[toc]
### Desafios
### Select Script
### PARTE I
### DESAFIO 1
```sql=
SELECT nm_categoria,
nm_produto,
vl_preco
FROM TB_PRODUTO P
JOIN TB_CATEGORIA C
ON P.ID_CATEGORIA = C.ID_CATEGORIA
WHERE C.NM_CATEGORIA = "Mouse Gamer"
ORDER
BY nm_categoria,
nm_produto;
```
### DESAFIO 2
```sql=
SELECT nm_categoria,
nm_produto,
vl_preco,
qtd_minima,
qtd_disponivel
FROM TB_PRODUTO P
JOIN TB_CATEGORIA C
ON P.ID_CATEGORIA = C.ID_CATEGORIA
JOIN TB_ESTOQUE E
ON E.ID_PRODUTO = P.ID_PRODUTO
WHERE E.QTD_DISPONIVEL < E.QTD_MINIMA
ORDER
BY nm_categoria,
nm_produto;
```
### DESAFIO 3
```sql=
SELECT nm_categoria,
nm_produto,
vl_preco,
qtd_minima,
qtd_disponivel
FROM TB_PRODUTO P
JOIN TB_CATEGORIA C
ON P.ID_CATEGORIA = C.ID_CATEGORIA
JOIN TB_ESTOQUE E
ON E.ID_PRODUTO = P.ID_PRODUTO
WHERE C.NM_CATEGORIA LIKE "%T%"
AND P.NM_PRODUTO LIKE "%O%"
ORDER
BY vl_preco DESC;
```
### DESAFIO 4
```sql=
SELECT nm_cliente,
ds_cpf,
ds_cep,
ds_endereco,
nr_endereco,
ds_cidade
FROM TB_CLIENTE CL
JOIN TB_ENDERECO EN
ON CL.ID_ENDERECO = EN.ID_ENDERECO
WHERE nm_cliente LIKE "%A%"
AND ds_endereco LIKE "%Rua%"
ORDER
BY ds_cidade;
```
### DESAFIO 5
```sql=
SELECT id_venda,
dt_venda,
nm_cliente,
ds_nota_fiscal,
tp_forma_pagamento,
ds_endereco,
nr_endereco
FROM TB_VENDA V
JOIN TB_CLIENTE CL
ON V.ID_CLIENTE = CL.ID_CLIENTE
JOIN TB_ENDERECO EN
ON V.ID_ENDERECO_ENTREGA = EN.ID_ENDERECO
WHERE V.DT_VENDA BETWEEN "2021-03-18" AND "2021-04-01"
ORDER
BY id_venda;
```
### DESAFIO 6
```sql=
SELECT id_venda,
dt_venda,
nm_cliente,
ds_nota_fiscal,
tp_forma_pagamento,
ds_endereco,
nr_endereco
FROM TB_VENDA V
JOIN TB_CLIENTE CL
ON V.ID_CLIENTE = CL.ID_CLIENTE
JOIN TB_ENDERECO EN
ON V.ID_ENDERECO_ENTREGA = EN.ID_ENDERECO
WHERE CL.NM_CLIENTE LIKE "%Pedro%"
or V.DS_NOTA_FISCAL = 101113642
ORDER
BY id_venda;
```
### DESAFIO 7
```sql=
SELECT id_venda,
dt_venda,
nm_cliente,
ds_nota_fiscal,
tp_forma_pagamento,
ds_endereco,
nr_endereco
FROM TB_VENDA V
JOIN TB_CLIENTE CL
ON V.ID_CLIENTE = CL.ID_CLIENTE
JOIN TB_ENDERECO EN
ON V.ID_ENDERECO_ENTREGA = EN.ID_ENDERECO
WHERE V.DT_VENDA = "2021-03-20"
AND EN.DS_ENDERECO LIKE "%Rua%"
ORDER
BY id_venda;
```
### DESAFIO 8
```sql=
SELECT V.ID_VENDA,
V.DT_VENDA,
CL.NM_CLIENTE,
V.DS_NOTA_FISCAL,
EN.DS_ENDERECO,
EN.NR_ENDERECO,
P.NM_PRODUTO,
C.ID_CATEGORIA,
P.VL_PRECO
FROM TB_VENDA V
JOIN TB_CLIENTE CL
ON V.ID_CLIENTE = CL.ID_CLIENTE
JOIN TB_ENDERECO EN
ON EN.ID_ENDERECO = V.ID_ENDERECO_ENTREGA
JOIN TB_VENDA_ITEM VI
on VI.ID_VENDA = V.ID_VENDA
JOIN TB_PRODUTO P
on P.ID_PRODUTO = VI.ID_PRODUTO
JOIN TB_CATEGORIA C
on C.ID_CATEGORIA = P.ID_CATEGORIA
JOIN TB_ESTOQUE E
ON E.ID_PRODUTO = P.ID_PRODUTO
WHERE V.ID_VENDA = 1
OR V.DS_NOTA_FISCAL = 796516422
ORDEr
BY id_venda;
```
### DESAFIO 9
```sql=
SELECT V.ID_VENDA,
V.DT_VENDA,
CL.NM_CLIENTE,
V.DS_NOTA_FISCAL,
EN.DS_ENDERECO,
EN.NR_ENDERECO,
P.NM_PRODUTO,
C.ID_CATEGORIA,
P.VL_PRECO
FROM TB_VENDA V
JOIN TB_CLIENTE CL
ON V.ID_CLIENTE = CL.ID_CLIENTE
JOIN TB_ENDERECO EN
ON EN.ID_ENDERECO = V.ID_ENDERECO_ENTREGA
JOIN TB_VENDA_ITEM VI
on VI.ID_VENDA = V.ID_VENDA
JOIN TB_PRODUTO P
on P.ID_PRODUTO = VI.ID_PRODUTO
JOIN TB_CATEGORIA C
on C.ID_CATEGORIA = P.ID_CATEGORIA
JOIN TB_ESTOQUE E
ON E.ID_PRODUTO = P.ID_PRODUTO
WHERE V.DT_VENDA = "2021-03-01"
ORDEr
BY id_venda;
```
### DESAFIO 10
```sql=
SELECT nm_produto,
nm_categoria,
vl_preco
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VI
ON VI.ID_VENDA = V.ID_VENDA
JOIN TB_PRODUTO P
on P.ID_PRODUTO = VI.ID_PRODUTO
JOIN TB_CATEGORIA C
on C.ID_CATEGORIA = P.ID_CATEGORIA
WHERE V.DT_VENDA = "2021-03-02"
ORDER
BY nm_produto;
```
### PARTE II
### DESAFIO 11
```sql=
SELECT nm_produto,
nm_categoria,
vl_preco
FROM TB_PRODUTO P
JOIN TB_CATEGORIA C
ON P.ID_CATEGORIA = C.ID_CATEGORIA
WHERE P.ID_PRODUTO NOT IN (SELECT id_produto from TB_VENDA_ITEM);
```
### DESAFIO 12
```sql=
SELECT P.ID_CATEGORIA,
C.NM_CATEGORIA
FROM TB_PRODUTO P
RIGHT JOIN TB_CATEGORIA C
ON P.ID_CATEGORIA = C.ID_CATEGORIA
WHERE P.ID_PRODUTO IS NULL;
WHERE C.ID_ENDERECO is NULL;
```
### DESAFIO 13
```sql=
SELECT id_cliente,
nm_cliente
FROM TB_CLIENTE C
left JOIN TB_ENDERECO E
ON C.ID_ENDERECO = E.ID_ENDERECO
WHERE C.ID_ENDERECO is NULL;
```
### DESAFIO 14
```sql=
SELECT V.ID_VENDA,
V.DT_VENDA,
CL.NM_CLIENTE,
V.DS_NOTA_FISCAL,
EN.DS_ENDERECO,
EN.NR_ENDERECO,
P.NM_PRODUTO,
C.ID_CATEGORIA,
P.VL_PRECO
FROM TB_VENDA V
JOIN TB_CLIENTE CL
ON V.ID_CLIENTE = CL.ID_CLIENTE
JOIN TB_ENDERECO EN
ON EN.ID_ENDERECO = V.ID_ENDERECO_ENTREGA
JOIN TB_VENDA_ITEM VI
on VI.ID_VENDA = V.ID_VENDA
JOIN TB_PRODUTO P
on P.ID_PRODUTO = VI.ID_PRODUTO
JOIN TB_CATEGORIA C
on C.ID_CATEGORIA = P.ID_CATEGORIA
JOIN TB_ESTOQUE E
ON E.ID_PRODUTO = P.ID_PRODUTO
WHERE V.ID_CLIENTE IS NULL;
```
#### PARTE III
### DESAFIO 15
```sql=
SELECT V.ID_VENDA,
COUNt (VI.ID_VENDA_ITEM) AS QTD_ITEMS
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VI
ON V.ID_VENDA = VI.ID_VENDA
GROUP
BY V.ID_VENDA;
```
### DESAFIO 16
```sql=
SELECT V.ID_VENDA,
COUNT (VI.ID_VENDA_ITEM) QTD_ITEMS,
SUM (P.VL_PRECO) VL_TOTAL_VENDA
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VI on V.ID_VENDA = VI.ID_VENDA
JOIN TB_PRODUTO P ON P.ID_PRODUTO = VI.ID_PRODUTO
GROUP
BY V.ID_VENDA;
```
### DESAFIO 17
```sql=
SELECT V.ID_VENDA,
V.DT_VENDA,
C.NM_CLIENTE,
COUNT (VI.ID_VENDA_ITEM) QTD_ITEMS,
SUM (P.VL_PRECO) VL_TOTAL_VENDA
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VI on V.ID_VENDA = VI.ID_VENDA
JOIN TB_PRODUTO P ON P.ID_PRODUTO = VI.ID_PRODUTO
JOIN TB_CLIENTE C ON C.ID_CLIENTE = V.ID_CLIENTE
GROUP
by V.ID_VENDA,
V.DT_VENDA,
C.NM_CLIENTE;
```
### DESAFIO 18
```sql=
SELECT V.ID_VENDA,
V.DT_VENDA,
C.NM_CLIENTE,
COUNT (VI.ID_VENDA_ITEM) QTD_ITEMS,
SUM (P.VL_PRECO) VL_TOTAL_VENDA
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VI on V.ID_VENDA = VI.ID_VENDA
JOIN TB_PRODUTO P ON P.ID_PRODUTO = VI.ID_PRODUTO
JOIN TB_CLIENTE C ON C.ID_CLIENTE = V.ID_CLIENTE
GROUP
by V.ID_VENDA,
V.DT_VENDA,
C.NM_CLIENTE
HAVING SUM (P.VL_PRECO) > 1000;
```
### DESAFIO 19
```sql=
SELECT E.DS_CIDADE,
COUNT (VI.ID_VENDA_ITEM) QTD_VENDAS
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VI
on V.ID_VENDA = VI.ID_VENDA
JOIN TB_PRODUTO P
ON P.ID_PRODUTO = VI.ID_PRODUTO
JOIN TB_ENDERECO E
ON E.ID_ENDERECO = V.ID_ENDERECO_ENTREGA
GROUP
by E.DS_CIDADE
ORDER
BY COUNT(VI.ID_VENDA_ITEM) DESC;
```
### DESAFIO 20
```sql=
SELECT nm_produto,
vl_preco,
COUNT (VI.id_venda_item) QTD_VENDAS
FROM TB_VENDA_ITEM VI
JOIN TB_PRODUTO P
ON VI.ID_PRODUTO = P.ID_PRODUTO
GROUP
BY nm_produto,
vl_preco
ORDER
BY COUNT(VI.ID_VENDA_ITEM) DESC;
```
### DESAFIO MONSTER
### DESAFIO 21
O MAIS PERTO QUE CHEGUEI
```sql=
SELECT ROW_NUMBER() OVER(ORDER BY QTD_COMPRAS ASC) AS ID_RANK,
CL.ID_CLIENTE,
CL.NM_CLIENTE,
CL.DS_CPF,
COUNT (VI.ID_VENDA_ITEM) QTD_COMPRAS
FROM TB_VENDA_ITEM VI
JOIN TB_VENDA V
ON V.ID_VENDA = VI.ID_VENDA
JOIN TB_CLIENTE CL
on CL.ID_CLIENTE = V.ID_CLIENTE
GROUP
by CL.NM_CLIENTE
ORDER
BY COUNT (VI.ID_VENDA) DESC
LIMIT 5;
```
{"metaMigratedAt":"2023-06-16T01:13:06.348Z","metaMigratedFrom":"Content","title":"Banco de Dados Session Four","breaks":true,"contributors":"[{\"id\":\"31e7052c-d777-4fb0-b189-63fab945e035\",\"add\":8549,\"del\":22}]"}