# 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; ```