1
resposta

Query sem sub-consulta

Boa tarde!

Realizei a atividade do vídeo anterior e referente a este exercício utilizando somente JOIN, sem usar a mesma sub-consulta proposta pelo professor.

Gostaria de saber se está correta e válida?

SELECT CLI.NOME, NF.CPF, TO_CHAR(NF.DATA_VENDA, 'MM/YYYY'), SUM(INF.QUANTIDADE) AS VOLUME_COMPRADO, CLI.VOLUME_DE_COMPRA AS LIMITE_POR_MES,
CASE 
    WHEN CLI.VOLUME_DE_COMPRA >= SUM(INF.QUANTIDADE) THEN 'Vendas válidas'
    ELSE 'Vendas Inválidas' END AS RESULTADO, ((SUM(INF.QUANTIDADE)) - CLI.VOLUME_DE_COMPRA) / CLI.VOLUME_DE_COMPRA * 100 AS PERCENTUAL
FROM NOTAS_FISCAIS NF
JOIN ITENS_NOTAS_FISCAIS INF ON NF.NUMERO = INF.NUMERO
JOIN TABELA_DE_CLIENTES CLI ON NF.CPF = CLI.CPF
WHERE TO_CHAR(NF.DATA_VENDA, 'MM/YYYY') = '01/2015'
GROUP BY NF.CPF, CLI.NOME, TO_CHAR(NF.DATA_VENDA, 'MM/YYYY'), CLI.VOLUME_DE_COMPRA
HAVING CLI.VOLUME_DE_COMPRA < SUM(INF.QUANTIDADE)
ORDER BY NF.CPF;

ATT,

Mateus Luchetta Lemos

1 resposta

Olá, Mateus, tudo bem?

A sua resposta é válida, mas tenho uma observação a fazer. A sua fórmula de calcular o percentual, está com os campos invertidos, dessa forma o resultado final se difere do resultado proposto. Abaixo, o código com a fórmula corrigida:

(1 - (MAX(CLI.VOLUME_DE_COMPRA) - SUM(INF.QUANTIDADE))) / SUM(INF.QUANTIDADE) * 100 AS PERCENTUAL

Espero ter ajudado, qualquer dúvida é só falar 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