-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqueries.sql
40 lines (33 loc) · 1.58 KB
/
queries.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
USE ecommerce;
-- juntadando vendedores e produtos
SELECT p.nome_produto, pj.razaoSocial, pj.enderecoID, p.produtoID, p.tamanho
FROM produto p INNER JOIN cliente_pj pj
ON p.vendedorID = pj.vendedorID;
-- juntando produto e estoque
SELECT p.produtoID, p.nome_produto, e.quantidadeProduto
FROM produto p INNER JOIN estoque e
ON p.produtoID = e.produtoID;
-- listando todos os clientes, fornecedores e vendedores, seus emails, UFs e cidades
SELECT c.razaoSocial AS nome, c.cnpjClientePJ AS identificador, c.emailClientePJ AS email, e.uf, e.cidade
FROM endereco e
LEFT JOIN (
SELECT enderecoID, razaoSocial, cnpjClientePJ, emailClientePJ FROM cliente_pj
UNION ALL
SELECT enderecoID, concat(nomeClientePF, " ", sobrenomeClientePF), cpfClientePF, emailClientePF FROM cliente_pf
) c ON e.enderecoID = c.enderecoID;
-- agrupando produtos por vendedores/fornecedores
SELECT cpj.razaoSocial, p.nome_produto, COUNT(*) AS total_produtos
FROM produto p
JOIN cliente_pj cpj ON p.vendedorID = cpj.vendedorID OR p.fornecedorID = cpj.fornecedorID
GROUP BY cpj.razaoSocial, p.nome_produto;
-- agrupando vendedores e fornecedores que possuam mais de 2 produtos a venda
SELECT cpj.razaoSocial, COUNT(*) AS total_produtos
FROM produto p
JOIN cliente_pj cpj ON p.vendedorID = cpj.vendedorID OR p.fornecedorID = cpj.fornecedorID
GROUP BY cpj.razaoSocial
HAVING COUNT(*) > 2;
-- ordenando os produtos por seus valores
SELECT p.produtoID, p.nome_produto, cpj.razaoSocial, p.tamanho, p.valor
FROM produto p
JOIN cliente_pj cpj ON p.vendedorID = cpj.vendedorID OR p.fornecedorID = cpj.fornecedorID
ORDER BY valor;