-
Notifications
You must be signed in to change notification settings - Fork 0
/
Queries E-commerce.sql
73 lines (61 loc) · 3.8 KB
/
Queries E-commerce.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*Primeira query
Tabela com as vendas realizadas descrevendo a forma de pagamento,
valores do frete e produto discriminado, produto e valor total por compra.
*/
select tipoPagamento as 'Forma de pagamento', qtdProdPedido*valor as 'Total Comprado',
valorFrete as 'Valor Frete', round(qtdProdPedido*valor+valorFrete,2) as 'Total Pago',
qtdProdPedido as 'Quantidade pedida', valor as 'Preço', categoria as 'Categoria',
descricaoProduto as 'Produto'
from pagamento as pg
inner join relprodutopedido rpp on pg.idPagPedido = rpp.idRelPedido
inner join produto p on p.idProduto = rpp.idRelProduto;
/*Segunda query
Resultado sintético dos pagamentos por forma de pagamento.
*/
select tipoPagamento as 'Forma de pagamento', sum(qtdProdPedido*valor) as 'Total Comprado',
round(sum(valorFrete),2) as 'Valor Frete', round(qtdProdPedido*valor+valorFrete,2) as 'Total Pago',
qtdProdPedido as 'Quantidade pedida', round(sum(valor),2) as 'Preço'
from pagamento as pg
inner join relprodutopedido rpp on pg.idPagPedido = rpp.idRelPedido
inner join produto p on p.idProduto = rpp.idRelProduto
group by tipoPagamento
order by tipoPagamento desc;
-- Variação da querie acima apenas para validar o having
select tipoPagamento as 'Forma de pagamento', sum(qtdProdPedido*valor) as 'Total Comprado',
round(sum(valorFrete),2) as 'Valor Frete', round(qtdProdPedido*valor+valorFrete,2) as 'Total Pago',
qtdProdPedido as 'Quantidade pedida', round(sum(valor),2) as 'Preço'
from pagamento as pg
inner join relprodutopedido rpp on pg.idPagPedido = rpp.idRelPedido
inner join produto p on p.idProduto = rpp.idRelProduto
group by tipoPagamento
having count(*) > 1;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
/*Terceira query
Todos os produtos disponíveis para aquisição disponibilizados pelo fornecedor e vendedores terceirizados.
*/
select descricaoProduto 'Produto', valor 'Valor',statusProdForn 'Situação do Produto',
razaoSocial_forn 'Loja', qtdProdForn 'Qtd Disponível', fone_1_forn 'Contato Empresa 1', fone_2_forn 'Contato Empresa 2'
from produto p inner join relprodutofornecedor rf on rf.idRelProduto = p.idProduto
inner join fornecedor f on f.idFornecedor = rf.idRelFornecedor
UNION
select descricaoProduto 'Produto', valor 'Valor',statusProdVend 'Situação do Produto',
razaoSocial_Terc 'Loja', qtdProdVend 'Qtd Disponível', fone_1_Terc 'Contato Empresa', fone_2_Terc 'Contato Empresa 2'
from produto p inner join relprodutovendedor rv on rv.idRelProduto = p.idProduto
inner join vendterceirizado v on v.idVendTerceirizado = rv.idRelVendedor;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
/*Quarta query
Discriminar por loja de fornecedores e vendedores terceirizados total de produtos, valor total disponível
para venda e quantidade de produtos vendidos.
*/
select razaoSocial_Terc 'Loja', sum(qtdProdVend) 'Qtd Disponível', sum(round(valor*qtdProdVend,2)) 'Valor Total', count(razaoSocial_Terc) 'Qtd. Tipos Prod.'
from produto p inner join relprodutovendedor rv on rv.idRelProduto = p.idProduto
inner join vendterceirizado v on v.idVendTerceirizado = rv.idRelVendedor
where statusProdVend like "%Disponível"
group by razaoSocial_Terc
UNION
select razaoSocial_forn 'Loja', sum(qtdProdForn) 'Qtd Disponível',
round(sum(valor*qtdProdForn),2) 'Valor Total', count(*) 'Qtd. Tipos Prod.'
from produto p inner join relprodutofornecedor rf on rf.idRelProduto = p.idProduto
inner join fornecedor v on v.idFornecedor = rf.idRelFornecedor
where statusProdForn like "%Disponível"
group by razaoSocial_forn;