Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Percentual de campos


Vinicius Schuh

Question

Boa Tarde amigos...

Tenho o seguinte código SQL:

SELECT     Round(Sum(TotalAvista), 2) As Total_Vista, 
                         Round(Sum(TotalAvista + TotalAPrazo), 2) As Total_geral, 
                         Round(Sum(TotalAPrazo), 2) As Total_Prazo,
                         
                         Month(DataDaPreVenda) As Mes , 
                         ((Total_Vista *100)/ Total_geral) As pcvista

FROM         dbo.[Pre Venda]
GROUP BY Month(DataDaPreVenda)
ORDER BY Month(DataDaPreVenda)

Que me retorna o seguinte erro: 60217265.jpg

Este SQL sera usado para que me retorne um resumo de vendas por forma de pagamento de acordo com meu banco... Preciso descobrir o % (Percentual) de venda da forma de pagamento A VISTA e A PRAZO para seus respectivos meses.

Ex:

JANEIRO: A VISTA - x %

A PRazo - y %

Tomando como exemplo a forma de pagamento a vista:

Total_Vista = 15,00

Total_Prazo = 30,00

Total_Geral = 45,00

Para obter a % de tais, sei que devo multiplicar o valor de Total_Vista por 100 e dividir pelo valor de Total_Geral, que daria no nosso exemplo 33,33% e para prazo realizando o mesmo processo chegariamos a um valor de 66,66% batendo então os 100%.

Como realizo esse cálculo no SQL? Tentei algumas formas mas não está dando cérto. Desde já agradeço a atenção de todos...

Edited by Vinicius Schuh
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Bom dia Vinicius,

Não tem como você utilizar o alias "Total_Vista" em outro cálculo.

O que você pode fazer é substituir o alias "Total_Vista" por "Round(Sum(TotalAvista), 2)" na sintaxe.

Fazer o mesmo procedimento com o alias "Total_geral".

Link to comment
Share on other sites

  • 0

Bom dia Amigo Fulvio...

Verdade não tinha "me ligado" nesse detalhe. Rs

Refiz o Código e ficou dessa forma:

SELECT     Month(DataDaPreVenda) As Mes, 
           Mes_Nome = Case Month(DataDaPreVenda) 
                      When '1' Then 'JANEIRO' When '2' Then 'FEVEREIRO' When '3' Then 'MARÇO' When '4' Then 'ABRIL' 
                      When '5' Then 'MAIO' When '6' Then 'JUNHO' When '7' Then 'JULHO' When '8' Then 'AGOSTO' 
                      When '9' Then 'SETEMBRO' When '10' Then 'OUTUBRO' When '11' Then 'NOVEMBRO' When '12' Then 'DEZEMBRO' 
                      End,
              Round(Sum(TotalAvista), 2) As Total_Vista, 
            Round(Sum(TotalAPrazo), 2) As Total_Pra, 
           Round(Sum(TotalAvista + TotalAPrazo), 2) As Total_geral,
           Round(Sum(TotalAvista), 2) * 100 / Round(Sum(TotalAvista + TotalAPrazo), 2) As Pc_Vista, 
           Round(Sum(TotalAPrazo), 2) * 100 / Round(Sum(TotalAvista + TotalAPrazo), 2) As Pc_Prazo
           
FROM         dbo.[Pre Venda]
WHERE     (Not (DataDaPreVenda = ''))
GROUP BY Month(DataDaPreVenda)
ORDER BY Month(DataDaPreVenda)

Obrigado pela ajuda!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...