1
resposta

Quantidade Vendida

Boa tarde,

Eu tentei fazer esse exercício querendo encontrar o tamanho que mais vendeu por quantidade e não por valor. Na parte que teoricamente seria mais "simples" eu não consegui fazer que é realizar o cálculo da porcentagem dos mais vendidos. Por incrível que parece a coluna PERCENTUAL traz somente o valor 0. Por favor, poderiam me ajudar a encontrar meu erro e terminar essa consulta? Obrigado []'s Segue código abaixo:


SELECT 
    AUX1.TAMANHO,
    AUX1.ANO,
    AUX1.[QUANTIDADE VENDIDA],
    AUX2.[QUANTIDADE TOTAL VENDIDA],

    --meu problema está na linha abaixo onde eu não consigo calcular o percentual
    CONVERT(DECIMAL (15,2),(AUX1.[QUANTIDADE VENDIDA] /    AUX2.[QUANTIDADE TOTAL VENDIDA]) * 100) AS PERCENTUAL

FROM
(SELECT
    YEAR(NF.DATA) AS ANO,
    TP.TAMANHO,
    SUM(INF.QUANTIDADE) AS [QUANTIDADE VENDIDA]

FROM
    [NOTAS FISCAIS] NF INNER JOIN [ITENS NOTAS FISCAIS] INF
    ON NF.NUMERO = INF.NUMERO
    INNER JOIN [TABELA DE PRODUTOS] TP
    ON TP.[CODIGO DO PRODUTO] = INF.[CODIGO DO PRODUTO]

WHERE YEAR(NF.DATA) = '2016'
GROUP BY TP.TAMANHO, YEAR(NF.DATA)) AUX1

INNER JOIN

(SELECT
    YEAR(NF.DATA) AS ANO,
    SUM(INF.QUANTIDADE) AS [QUANTIDADE TOTAL VENDIDA]

FROM
    [NOTAS FISCAIS] NF INNER JOIN [ITENS NOTAS FISCAIS] INF
    ON NF.NUMERO = INF.NUMERO
    INNER JOIN [TABELA DE PRODUTOS] TP
    ON TP.[CODIGO DO PRODUTO] = INF.[CODIGO DO PRODUTO]

WHERE YEAR(NF.DATA) = '2016'
GROUP BY YEAR(NF.DATA)) AUX2

ON AUX1.ANO = AUX2.ANO

ORDER BY AUX1.[QUANTIDADE VENDIDA] DESC

1 resposta

Pelo que eu vi, o problema pode estar na forma de converter os campos antes de fazer a conta. Tente fazer assim:

convert(decimal(15,2),((convert(float,AUX1.[QUANTIDADE TOTAL])  / convert(float,AUX2.[QUANTIDADE TOTAL VENDIDA])) * 100)) AS PERCENTUAL