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

(Resolvido) ERRO DIVISÃO POR ZERO (0)


Vinicius Schuh

Pergunta

Boa Tarde amigos do Fórum, andei meio sumido mas estamos ai na ativa de novo rs rs.

Estou com o seguinte problema, desenvolvi um SQL relativamente simples, que me retorna o Número de um determinado pedido, Data de emissão, a condição de pagamento usada, o valor dos itens, o Valor do Desconto e o Valor Liquido.

Na minha tabela o valor do DESCONTO é retornado no formato de REAIS, preciso então desenvolver um cálculo que me retorne esse valor em %.

O problema ocorre quando o pedido não tem desconto, no momento de fazer o cálculo ocorre o erro de divisão por zero:

Divide by zero error encountered.

como eu poderia fazer essa CÁLCULO validando os pedidos que não tem desconto para evitar o tal erro de divisão por 0?

Segue Script:

SELECT     
    [Pre Venda].NumeroDaPreVenda, 
    [Pre Venda].DataDaPreVenda, 
    [Pre Venda].CódigoDoCliente, 
    Clientes.NomeDoCliente, 
    [Pre Venda].CódigoDoFuncionário, 
    Funcionários.NomeDoFuncionário, 
    ROUND(SUM([Detalhes da Pre Venda].TotalDaLinha), 2) As VL_Itens,
    [Pre Venda].DescontoAcrescimo, 
    [b]ROUND(SUM((dbo.[Pre Venda].DescontoAcrescimo * 100) / (dbo.[Pre Venda].TotalDaPreVenda + (dbo.[Pre Venda].DescontoAcrescimo * -1))), 2) AS PC_Desc,[/b]
    [Pre Venda].TotalDaPreVenda, 
    Portador.NomeDoPortador
FROM
    [Pre Venda] 
INNER JOIN
    [Detalhes da Pre Venda] ON [Pre Venda].NumeroDaPreVenda = [Detalhes da Pre Venda].NumeroDaPreVenda
INNER JOIN
    Funcionários ON [Pre Venda].CódigoDoFuncionário = Funcionários.CódigoDoFuncionário 
INNER JOIN
    Clientes ON [Pre Venda].CódigoDoCliente = Clientes.CódigoDoCliente 
INNER JOIN
    tblCondicao ON [Pre Venda].CódigoDaCondição = tblCondicao.ID 
INNER JOIN
    Portador ON [Pre Venda].CódigoDoPortador = Portador.CódigoDoPortador
GROUP BY
    [Pre Venda].NumeroDaPreVenda,
    [Pre Venda].DataDaPreVenda,
    [Pre Venda].CódigoDoCliente,
    Clientes.NomeDoCliente,
    [Pre Venda].CódigoDoFuncionário,
    Funcionários.NomeDoFuncionário,
    [Pre Venda].DescontoAcrescimo,
    [Pre Venda].TotalDaPreVenda,
    Portador.NomeDoPortador

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

1 resposta a esta questão

Posts Recomendados

  • 0

Boa Tarde amigos, resolvi o meu problema adicionando a seguinte linha em meu SCRIPT:

WHERE TotalDaPreVenda > 0

O erro ocorria nas vendas CANCELADAS, uma vez cancelada o valor da venda fica R$0,00 na tabela, consequentemente ocorria o erro de divisão por zero :lol:

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...