-
Notifications
You must be signed in to change notification settings - Fork 0
/
Relatorio_aplicacao.sql
143 lines (116 loc) · 6.27 KB
/
Relatorio_aplicacao.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*RELATÓRIO DE VENDAS*/
/* VAMOS ANALISAR SE O VOLUMER DE VENDA FOI MAIOR OU MENOR DO QUE O ESPERADO*/
SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM'), INF.QUANTIDADE
FROM NOTAS_FISCAIS NF INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO;
SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM'), SUM(INF.QUANTIDADE)
FROM NOTAS_FISCAIS NF INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM');
SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM'), SUM(INF.QUANTIDADE)
FROM NOTAS_FISCAIS NF INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM');
SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES;
SELECT CADASTRO.CPF, CADASTRO.NOME,VENDAS.MES_ANO, CADASTRO.VOLUME_DE_COMPRA,
VENDAS.VOLUME_VENDIDO FROM
(SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM') AS MES_ANO, SUM(INF.QUANTIDADE) AS VOLUME_VENDIDO
FROM NOTAS_FISCAIS NF INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM')) VENDAS
INNER JOIN
(SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES) CADASTRO
ON VENDAS.CPF = CADASTRO.CPF
WHERE MES_ANO = '2018-01';
SELECT CADASTRO.CPF, CADASTRO.NOME,VENDAS.MES_ANO, CADASTRO.VOLUME_DE_COMPRA,
VENDAS.VOLUME_VENDIDO,
CASE WHEN CADASTRO.VOLUME_DE_COMPRA <= VENDAS.VOLUME_VENDIDO THEN 'VENDAS VÁLIDAS'
ELSE 'VENDAS NÃO VÁLIDAS' END AS RESULTADO
FROM
(SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM') AS MES_ANO, SUM(INF.QUANTIDADE) AS VOLUME_VENDIDO
FROM NOTAS_FISCAIS NF INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM')) VENDAS
INNER JOIN
(SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES) CADASTRO
ON VENDAS.CPF = CADASTRO.CPF
WHERE MES_ANO = '2018-01';
SELECT CADASTRO.CPF, CADASTRO.NOME,VENDAS.MES_ANO, CADASTRO.VOLUME_DE_COMPRA,
VENDAS.VOLUME_VENDIDO,'DIFERENÇA É '|| TO_CHAR(CADASTRO.VOLUME_DE_COMPRA - VENDAS.VOLUME_VENDIDO) AS DIFERENCA,
CASE WHEN CADASTRO.VOLUME_DE_COMPRA >= VENDAS.VOLUME_VENDIDO THEN 'VENDAS VÁLIDAS'
ELSE 'VENDAS NÃO VÁLIDAS' END AS RESULTADO
FROM
(SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM') AS MES_ANO, SUM(INF.QUANTIDADE) AS VOLUME_VENDIDO
FROM NOTAS_FISCAIS NF INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM')) VENDAS
INNER JOIN
(SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES) CADASTRO
ON VENDAS.CPF = CADASTRO.CPF
WHERE CADASTRO.VOLUME_DE_COMPRA - VENDAS.VOLUME_VENDIDO < 0;
/*------------------------------------------------------------------------------------------------*/
/*RELATORIO 2: VOLUME DE VENDAS POR PRODUTO. QUAL PRODUTO VENDEU MAIS?*/
SELECT TP.SABOR, INF.QUANTIDADE FROM ITENS_NOTAS_FISCAIS INF INNER JOIN
TABELA_DE_PRODUTOS TP ON TP.CODIGO_DO_PRODUTO =INF.CODIGO_DO_PRODUTO;
SELECT TP.SABOR, INF.QUANTIDADE , NF.DATA_VENDA FROM ITENS_NOTAS_FISCAIS INF INNER JOIN
TABELA_DE_PRODUTOS TP ON TP.CODIGO_DO_PRODUTO =INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO;
SELECT TP.SABOR, INF.QUANTIDADE ,TO_CHAR(NF.DATA_VENDA,'YYYY') FROM ITENS_NOTAS_FISCAIS INF INNER JOIN
TABELA_DE_PRODUTOS TP ON TP.CODIGO_DO_PRODUTO =INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO
WHERE TO_CHAR(DATA_VENDA, 'YYYY')=2016;
SELECT TP.SABOR, SUM(INF.QUANTIDADE) ,TO_CHAR(NF.DATA_VENDA,'YYYY') AS ANO FROM ITENS_NOTAS_FISCAIS INF INNER JOIN
TABELA_DE_PRODUTOS TP ON TP.CODIGO_DO_PRODUTO =INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO
WHERE TO_CHAR(DATA_VENDA, 'YYYY')=2016
GROUP BY TP.SABOR,TO_CHAR(NF.DATA_VENDA,'YYYY');
/*QUERO AGORA MOSTRAR DO MAIOR PARA O MENOR*/
SELECT TP.SABOR, SUM(INF.QUANTIDADE) ,TO_CHAR(NF.DATA_VENDA,'YYYY') AS ANO FROM ITENS_NOTAS_FISCAIS INF INNER JOIN
TABELA_DE_PRODUTOS TP ON TP.CODIGO_DO_PRODUTO =INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO
WHERE TO_CHAR(DATA_VENDA, 'YYYY')=2016
GROUP BY TP.SABOR,TO_CHAR(NF.DATA_VENDA,'YYYY')
ORDER BY SUM(INF.QUANTIDADE) DESC;
/*VAMOS BUSCAR AGORA O TOTAL DE VENDAS E FAZER UMA BUSCAR DA PORCENTAGEM*/
SELECT SUM(INF.QUANTIDADE) ,TO_CHAR(NF.DATA_VENDA,'YYYY') AS ANO FROM ITENS_NOTAS_FISCAIS INF INNER JOIN
TABELA_DE_PRODUTOS TP ON TP.CODIGO_DO_PRODUTO =INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO
WHERE TO_CHAR(DATA_VENDA, 'YYYY')=2016
GROUP BY TO_CHAR(NF.DATA_VENDA,'YYYY')
ORDER BY SUM(INF.QUANTIDADE) DESC;
/*3626240 É O TOTAL*/
SELECT TP.SABOR, SUM(INF.QUANTIDADE) ,TO_CHAR(NF.DATA_VENDA,'YYYY')AS ANO,ROUND(SUM(INF.QUANTIDADE)*100/3626240,2) AS PERCENTUAL
FROM ITENS_NOTAS_FISCAIS INF INNER JOIN
TABELA_DE_PRODUTOS TP ON TP.CODIGO_DO_PRODUTO =INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO
WHERE TO_CHAR(DATA_VENDA, 'YYYY')=2016
GROUP BY TP.SABOR,TO_CHAR(NF.DATA_VENDA,'YYYY')
ORDER BY SUM(INF.QUANTIDADE) DESC;
/*FAZENDO POR TAMANHO*/
SELECT tp.tamanho,TO_CHAR(NF.DATA_VENDA,'YYYY'),INF.QUANTIDADE AS ANO 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;
SELECT tp.tamanho,TO_CHAR(NF.DATA_VENDA,'YYYY')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 TO_CHAR(NF.DATA_VENDA, 'YYYY') = '2016'
GROUP BY TP.TAMANHO ,TO_CHAR(NF.DATA_VENDA,'YYYY')
ORDER BY (QUANTIDADE) DESC;
/*PEGANDO O TOTAL DE VENDAS*/
SELECT TO_CHAR(NF.DATA_VENDA,'YYYY')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 TO_CHAR(NF.DATA_VENDA, 'YYYY') = '2016'
GROUP BY TO_CHAR(NF.DATA_VENDA,'YYYY')
ORDER BY (QUANTIDADE) DESC;
/*3626240*/
SELECT tp.tamanho,TO_CHAR(NF.DATA_VENDA,'YYYY')AS ANO,SUM(INF.QUANTIDADE) AS QUANTIDADE,
ROUND(SUM(INF.QUANTIDADE)*100/3626240,2) AS PORCENTAGEM
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 TO_CHAR(NF.DATA_VENDA, 'YYYY') = '2016'
GROUP BY TP.TAMANHO ,TO_CHAR(NF.DATA_VENDA,'YYYY')
ORDER BY (QUANTIDADE) DESC;