1
resposta

Resolução da questão

Fiz com a porcentagem sendo arredondada em duas casas decimais para ficar mais apresentável a porcentagem.

SELECT X.NOME, X.CPF, X.MES_ANO, X.QUANTIDADE_VENDAS, X.QUANTIDADE_LIMITE, ROUND((1 - (X.QUANTIDADE_LIMITE/X.QUANTIDADE_VENDAS)) * 100, 2) AS PERCENTUAL_ULTRAPASSADO,
CASE WHEN (X.QUANTIDADE_LIMITE - X.QUANTIDADE_VENDAS) < 0 THEN 'COMPRA INVALIDA'
     ELSE 'COMPRA VALIDA' END AS VALIDACAO_DA_COMPRA
FROM (SELECT NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m') AS MES_ANO,
SUM(INF.QUANTIDADE) AS QUANTIDADE_VENDAS, MAX(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 NF.CPF = TC.CPF
GROUP BY NF.CPF, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m')
ORDER BY NF.CPF) X 
WHERE (X.QUANTIDADE_LIMITE - X.QUANTIDADE_VENDAS) < 0
1 resposta

Muito bom ! Quanto mais ordenado e "formatado" o resultado se apresentar, melhor ficará a análise dos mesmos.

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