---
# System prepended metadata

title: Session four | Banco de Dados | 2° bimestre

---

# Session four | Banco de Dados | 2° bimestre
**Nome** Kevin Ribeiro de Andrade
**Número** 27
**Turma** INFO A

## SELECT
```sql=
SELECT
C.nm_categoria,
       P.nm_produto,
       P.vl_preco
FROM TB_VENDA_ITEM VT
INNER JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
INNER JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
INNER JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
INNER JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
RIGHT JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
ORDER
BY C.nm_categoria AND P.nm_produto;


```
```sql=
SELECT
C.nm_categoria,
       P.nm_produto,
       P.vl_preco,
       E.qtd_minima,
       E.qtd_disponivel
FROM TB_VENDA_ITEM VT
INNER JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
INNER JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
INNER JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
INNER JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
RIGHT JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
WHERE E.qtd_disponivel < E.qtd_minima
ORDER
BY C.nm_categoria AND P.nm_produto;
```

```sql=
SELECT
C.nm_categoria,
       P.nm_produto,
       P.vl_preco,
       E.qtd_minima,
       E.qtd_disponivel
FROM TB_VENDA_ITEM VT
INNER JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
RIGHT JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
INNER JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
INNER JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
RIGHT JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
ORDER 
BY P.vl_preco desc;
```

```sql=
SELECT CL.nm_cliente,
       CL.ds_CPF,
       EN.ds_CEP,
       EN.ds_endereco,
       EN.ds_cidade
       
FROM TB_VENDA_ITEM VT
INNER JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
 JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
INNER JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
ORDER 
BY EN.ds_cidade;
```

```sql=
SELECT V.id_venda,
       V.dt_venda,
       CL.nm_cliente,
       V.ds_nota_fiscal,
       V.tp_forma_pagamento,
       EN.ds_endereco,
       EN.nr_endereco
FROM TB_VENDA_ITEM VT
INNER JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
 JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
INNER JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
WHERE V.dt_venda BETWEEN '2021-01-01' AND'2021-06-31'

ORDER 
BY V.id_venda;
```

```sql=
SELECT V.id_venda,
       V.dt_venda,
       CL.nm_cliente,
       V.ds_nota_fiscal,
       V.tp_forma_pagamento,
       EN.ds_endereco,
       EN.nr_endereco
FROM TB_VENDA_ITEM VT
INNER JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
 JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
RIGHT JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
ORDER 
BY V.id_venda;
```

```sql=
SELECT V.id_venda,
       V.dt_venda,
       CL.nm_cliente,
       V.ds_nota_fiscal,
       V.tp_forma_pagamento,
       EN.ds_endereco,
       EN.nr_endereco
FROM TB_VENDA_ITEM VT
LEFT JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
 RIGHT JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
 JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
WHERE V.dt_venda BETWEEN '2021-01-01' AND'2021-06-31'

ORDER 
BY V.id_venda;
```

```sql=
SELECT V.id_venda,
       V.dt_venda,
       CL.nm_cliente,
       V.ds_nota_fiscal,
       V.tp_forma_pagamento,
       EN.ds_endereco,
       EN.nr_endereco,
       C.nm_categoria,
       P.nm_produto,
       P.vl_preco
FROM TB_VENDA_ITEM VT
JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
 JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
 JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
WHERE V.dt_venda BETWEEN '2021-01-01' AND'2021-06-31'

ORDER 
BY V.id_venda;
```

```sql=
SELECT V.id_venda,
       V.dt_venda,
       CL.nm_cliente,
       V.ds_nota_fiscal,
       V.tp_forma_pagamento,
       EN.ds_endereco,
       EN.nr_endereco,
       C.nm_categoria,
       P.nm_produto,
       P.vl_preco
FROM TB_VENDA_ITEM VT
JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
INNER JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
 JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
 JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
WHERE V.dt_venda BETWEEN '2021-01-01' AND'2021-06-31'

ORDER 
BY V.id_venda;
```
# Parte 2

```sql=
SELECT 
       C.nm_categoria,
       P.nm_produto,
       P.vl_preco
FROM TB_PRODUTO P 
JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria

WHERE P.id_produto NOT IN (SELECT id_produto FROM TB_VENDA_ITEM);
```

```sql=
SELECT 
       C.nm_categoria,
       P.nm_produto,
       P.vl_preco
FROM TB_PRODUTO P 
RIGHT JOIN TB_CATEGORIA C
ON C.id_categoria = P.id_categoria
WHERE P.id_produto is null;
```

```sql=
SELECT 
       CL.id_cliente,
       CL.nm_cliente,
       CL.ds_cpf
FROM TB_CLIENTE CL
LEFT JOIN TB_ENDERECO EN
ON EN.id_endereco = CL.id_endereco
WHERE CL.id_endereco is null;
```

```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.nm_categoria,
       P.vl_preco
       
FROM TB_VENDA_ITEM VT
RIGHT JOIN TB_VENDA V
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
JOIN TB_ESTOQUE E
ON E.id_produto = P.id_produto
 JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
 JOIN TB_CLIENTE CL
ON CL.id_endereco = EN.id_endereco
JOIN TB_CATEGORIA C
ON P.id_categoria = C.id_categoria
WHERE V.id_cliente is null;
```
## parte 3

```sql=
SELECT   V.id_venda,
         COUNT(VT.id_venda_item) qtd_item
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VT
ON V.id_venda = VT.id_venda
GROUP
BY V.id_venda;
```

```sql=
SELECT   V.id_venda,
         COUNT(VT.id_venda_item) qtd_item,
         SUM(P.vl_preco)
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VT
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
GROUP
BY V.id_venda;
```

```sql=
SELECT   V.id_venda,
         V.dt_venda,
         CL.nm_cliente,
         COUNT(VT.id_venda_item) qtd_item,
         SUM(P.vl_preco)
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VT
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
JOIN TB_CLIENTE CL
ON V.id_cliente = CL.id_cliente
GROUP
BY V.id_venda,
   V.dt_venda,
   CL.nm_cliente;
```

```sql=
SELECT   V.id_venda,
         V.dt_venda,
         CL.nm_cliente,
         COUNT(VT.id_venda_item) qtd_item,
         SUM(P.vl_preco)
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VT
ON V.id_venda = VT.id_venda
JOIN TB_PRODUTO P
ON P.id_produto = VT.id_produto
JOIN TB_CLIENTE CL
ON V.id_cliente = CL.id_cliente
GROUP
BY V.id_venda,
   V.dt_venda,
   CL.nm_cliente
 HAVING SUM(P.vl_preco) > 1000;
```
```sql=
SELECT   EN.ds_cidade,
         COUNT(VT.id_venda_item) qtd_venda
FROM TB_VENDA V
JOIN TB_VENDA_ITEM VT
ON V.id_venda = VT.id_venda
JOIN TB_ENDERECO EN
ON EN.id_endereco = V.id_endereco_entrega
GROUP
BY EN.ds_cidade
ORDER 
BY COUNT (VT.id_venda_item);

# Desafio Monster

```sql=
SELECT ROW_NUMBER() OVER(PARTITION BY CL.id_cliente ORDER BY V.id_venda ASC) AS row#,
       V.id_venda,
       CL.id_cliente,
       CL.nm_cliente
FROM   TB_VENDA V
JOIN  TB_CLIENTE CL
ON CL.id_cliente = V.id_cliente
WHERE V.id_cliente = 4
GROUP 
BY CL.nm_cliente;
```