-
Notifications
You must be signed in to change notification settings - Fork 0
/
relatorio_de_vendas.sql
94 lines (80 loc) · 3.93 KB
/
relatorio_de_vendas.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* 'Relatório sobre vendas válidas e inválidas ao gerente de vendas para que possa ser analisado
se o parâmetro de volume de compras está sendo considerado durante as negociações com os clientes.' */
SELECT * FROM ITENS_NOTAS_FISCAIS;
SELECT * FROM NOTAS_FISCAIS;
select *from notas_fiscais NF
inner join itens_notas_fiscais INF
on NF.NUMERO = INF.NUMERO;
/* Consulta com Vendas de Clientes por Mês: */
select NF.CPF, date_format(NF.DATA_VENDA, '%Y-%m') as MES_ANO,
sum(INF.QUANTIDADE) as QUANTIDADE_VENDAS from notas_fiscais NF
inner join itens_notas_fiscais INF on NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, date_format(NF.DATA_VENDA, '%Y-%m');
/* Limite de Compra por Cliente: */
select * from tabela_de_clientes TC;
select TC.CPF, TC.NOME, TC.VOLUME_DE_COMPRA as QUANTIDADE_LIMITE
from tabela_de_clientes TC;
select X.CPF, X.NOME, X.MES_ANO, X.QUANTIDADE_VENDAS, X.QUANTIDADE_LIMITE,
CASE WHEN(X.QUANTIDADE_LIMITE - X.QUANTIDADE_VENDAS) < 0 THEN 'INVÁLIDA'
ELSE 'VÁLIDA' end as STATUS_VENDA
from(
select NF.CPF, TC. NOME, date_format(NF.DATA_VENDA, '%Y-%m') as MES_ANO,
sum(INF.QUANTIDADE) as QUANTIDADE_VENDAS,
max(TC.VOLUME_DE_COMPRA) as QUANTIDADE_LIMITE from notas_fiscais NF
inner join itens_notas_fiscais INF
on NF.NUMERO = INF.NUMERO
inner join tabela_de_clientes TC
on TC.CPF = NF.CPF
GROUP BY NF.CPF, TC.NOME, date_format(NF.DATA_VENDA, '%Y-%m')) X;
/* RELATÓRIO DE VENDAS POR SABOR: */
/* Quantidade Vendida por Sabor Ano 2016 */
select TP.SABOR, year(NF.DATA_VENDA) as ANO, sum(INF.QUANTIDADE) as QUANTIDADE
from TABELA_DE_PRODUTOS TP
inner join ITENS_NOTAS_FISCAIS INF on TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
inner join NOTAS_FISCAIS NF on NF.NUMERO = INF.NUMERO
where year(NF.DATA_VENDA) = 2016
group by TP.SABOR, year(NF.DATA_VENDA)
order by sum(INF.QUANTIDADE) desc;
/* Quantidade Total de 2016*/
select YEAR(NF.DATA_VENDA) as ANO, SUM(INF.QUANTIDADE) as QUANTIDADE from
TABELA_DE_PRODUTOS TP
inner join ITENS_NOTAS_FISCAIS INF on TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
inner join NOTAS_FISCAIS NF on NF.NUMERO = INF.NUMERO
where YEAR(NF.DATA_VENDA) = 2016
group by YEAR(NF.DATA_VENDA)
/* Quantidade Total com Participação */
select VENDA_SABOR.SABOR, VENDA_SABOR.ANO, VENDA_SABOR.QUANTIDADE,
round((VENDA_SABOR.QUANTIDADE/VENDA_TOTAL.ANO) * 100, 2) as PARTICIPAÇÃO
from
(select TP.SABOR, year(NF.DATA_VENDA) as ANO, sum(INF.QUANTIDADE) as QUANTIDADE
from TABELA_DE_PRODUTOS TP
inner join ITENS_NOTAS_FISCAIS INF on TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
inner join NOTAS_FISCAIS NF on NF.NUMERO = INF.NUMERO
where year(NF.DATA_VENDA) = 2016
group by TP.SABOR, year(NF.DATA_VENDA)) as VENDA_SABOR
inner join
(select year(NF.DATA_VENDA) as ANO, sum(INF.QUANTIDADE) as QUANTIDADE
from TABELA_DE_PRODUTOS TP
inner join ITENS_NOTAS_FISCAIS INF on TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
inner join NOTAS_FISCAIS NF on NF.NUMERO = INF.NUMERO
where year(NF.DATA_VENDA) = 2016
group by year(NF.DATA_VENDA)) as VENDA_TOTAL
on VENDA_SABOR.ANO = VENDA_TOTAL.ANO
order by VENDA_SABOR.QUANTIDADE desc;
/* Ranking das Vendas por Tamanho */
select VENDA_TAMANHO.TAMANHO, VENDA_TAMANHO.ANO, VENDA_TAMANHO.QUANTIDADE,
ROUND((VENDA_TAMANHO.QUANTIDADE/VENDA_TOTAL.QUANTIDADE) * 100, 2) as PARTICIPACAO from
(select TP.TAMANHO, YEAR(NF.DATA_VENDA) as ANO, SUM(INF.QUANTIDADE) as QUANTIDADE from
TABELA_DE_PRODUTOS TP
inner join ITENS_NOTAS_FISCAIS INF on TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
inner join NOTAS_FISCAIS NF on NF.NUMERO = INF.NUMERO
where YEAR(NF.DATA_VENDA) = 2016
group by TP.TAMANHO, YEAR(NF.DATA_VENDA)) AS VENDA_TAMANHO
inner join (select YEAR(NF.DATA_VENDA) as ANO, SUM(INF.QUANTIDADE) as QUANTIDADE from
TABELA_DE_PRODUTOS TP
inner join ITENS_NOTAS_FISCAIS INF on TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
inner join NOTAS_FISCAIS NF on NF.NUMERO = INF.NUMERO
where YEAR(NF.DATA_VENDA) = 2016
group by YEAR(NF.DATA_VENDA)) AS VENDA_TOTAL
on VENDA_TAMANHO.ANO = VENDA_TOTAL.ANO
order by VENDA_TAMANHO.QUANTIDADE desc;