Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Minha Solução] - Desafio Percentuais de Vendas por tamanho

SELECT 
    CONSULTA_RELATORIO.TAMANHO
    ,CONSULTA_RELATORIO.ANO
    ,CONSULTA_RELATORIO.QUANTIDADE_TOTAL
    ,ROUND((CONSULTA_RELATORIO.QUANTIDADE_TOTAL / CONSULTA_RELATORIO.QUANTIDADE_GERAL) * 100,2) || '%'AS
    PERCENTUAL_PARTICIPACAO 
FROM
(SELECT 
TP.TAMANHO,
EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO,
SUM(INF.QUANTIDADE) AS QUANTIDADE_TOTAL,
(
SELECT 
TOTAL_ANO.QUANTIDADE_GERAL FROM
(SELECT
EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO
,SUM(INF.QUANTIDADE) AS QUANTIDADE_GERAL
FROM NOTAS_FISCAIS NF
INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
WHERE EXTRACT(YEAR FROM NF.DATA_VENDA) = 2016
GROUP BY EXTRACT(YEAR FROM NF.DATA_VENDA)) TOTAL_ANO    
) AS QUANTIDADE_GERAL
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 INF.NUMERO = NF.NUMERO
WHERE EXTRACT(YEAR FROM NF.DATA_VENDA) = 2016
GROUP BY TP.TAMANHO, EXTRACT(YEAR FROM NF.DATA_VENDA)
ORDER BY SUM(INF.QUANTIDADE) DESC) CONSULTA_RELATORIO;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Carlos!

Parece que sua consulta SQL está bem estruturada para calcular os percentuais de vendas por tamanho. No entanto, para garantir que o relatório esteja mostrando o ranking das vendas por tamanho, aqui estão algumas sugestões:

  1. Verifique a Ordenação: Certifique-se de que a ordenação está de acordo com o que você deseja. No seu caso, parece que você já está ordenando pela quantidade total de forma decrescente, o que deve listar os tamanhos com maiores vendas primeiro.

  2. Uso de Subconsultas: Você está usando subconsultas para calcular a quantidade geral. Isso está correto, mas pode ser simplificado se necessário. Certifique-se de que a subconsulta está retornando o valor correto para a quantidade geral.

  3. Clareza no Código: Para facilitar a leitura e manutenção, considere adicionar comentários no seu código SQL para explicar cada parte da consulta.

  4. Validação dos Resultados: Compare os resultados com os dados brutos para garantir que os cálculos estão corretos.

Se o objetivo é apenas o ranking, sua consulta parece estar no caminho certo. Se houver algo específico que não está funcionando como esperado, verifique os dados de entrada e a lógica de cálculo.

Espero ter ajudado e bons estudos!