1
resposta

[Projeto] 15 - A consulta do relatório (SOLUÇÃO)

Nesta aula construímos um relatório que apresentou os clientes que tiveram vendas inválidas. Complemente este relatório listando somente os que tiveram vendas inválidas e calculando a diferença entre o limite de venda máximo e o realizado, em percentuais.

Solução:

SELECT *, CONCAT(ROUND((1 - (X.VOLUME_DE_COMPRA / X.QUANTIDADE_VENDAS)) * 100, 2), '%') AS DIFERENCA 
FROM (SELECT NF.CPF, SUM(INF.QUANTIDADE) AS QUANTIDADE_VENDAS, 
DATE_FORMAT(NF.DATA_VENDA, '%Y-%m') AS MES_ANO, TC.VOLUME_DE_COMPRA, TC.NOME,
CASE 
    WHEN (TC.VOLUME_DE_COMPRA - SUM(INF.QUANTIDADE)) < 0 THEN 'INVÁLIDO'
    ELSE 'VÁLIDO' 
END AS STATUS_VENDA
FROM ITENS_NOTAS_FISCAIS INF
INNER JOIN NOTAS_FISCAIS NF
ON INF.NUMERO = NF.NUMERO
INNER JOIN TABELA_DE_CLIENTES TC
ON TC.CPF = NF.CPF
GROUP BY NF.CPF, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m')) X
WHERE X.STATUS_VENDA = 'INVÁLIDO';

Output (resumido):

CPFQUANTIDADE_VENDASMES_ANOVOLUME_DE_COMPRANOMESTATUS_VENDADIFERENCA
1471156710263852015-0524500Érica CarvalhoINVÁLIDO7.14%
1471156710249262015-0824500Érica CarvalhoINVÁLIDO1.71%

A minha solução buscou usar o máximo possível de comandos aprendidos nesse curso.

1 resposta

Olá, Sarah, tudo bem?

Mandou muito bem resolvendo o desafio proposto.

Continue assim e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software