Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Percentual de campos


Vinicius Schuh

Pergunta

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...

Editado por Vinicius Schuh
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...