Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Dúvida Com Erro "divide Por Zero Error Encountered"


Ir para a solução Resolvido por Jair - Fórmula,

Posts Recomendados


  • Tópicos Que Criei:  24
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  82
  • Conteúdo/Dia:  0.03
  • Reputação:   2
  • Pontos/Conquistas:  652
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Pessoal minha consulta para vendas e seus respectivos vendedores estava funcionando de boa, só que nesse mês apareceu o erro

"Divide por zero error encountered" alguém sabe o que significa?

Marquei em negrito onde uso "/" divisão, mas tentei com if e não deu certo, alguma sugestão?

-----------------------------------------

SELECT TPRD.DESCRICAO AS PRODUTOS,
TMOV.CODFILIAL AS FILIAL,
TMOV.PLACA AS PLACA,
FCFO.CODCFO AS COD_CLI,
FCFO.NOMEFANTASIA AS FANTASIA,
FCFO.NOME AS CLIENTE,
FCFO.RUA AS ENDERECO,
FCFO.BAIRRO AS BAIRRO,
GMUNICIPIO.NOMEMUNICIPIO MUNICÍPIO,
DATEPART(YEAR,TMOV.DATAEMISSAO) AS ANO,
DATEPART(MONTH,TMOV.DATAEMISSAO) AS MES,
DATEPART(DAY,TMOV.DATAEMISSAO) AS DIA,
SUM(TITMMOV.QUANTIDADE) AS FORMA,
(CASE WHEN TPRD.PESAVEL=1
THEN SUM(TITMMOV.VALOROPFRM1)
ELSE SUM(TITMMOV.QUANTIDADE*TPRD.PESOLIQUIDO) END) AS KG,
SUM(TITMMOV.VALOROPFRM2) AS VALOR,
SUM(TITMMOV.VALOROPFRM2) AS PERC,
(CASE WHEN TTMV.CODTMV IN ('2.2.01','2.2.09','2.2.13','2.2.16','2.2.25','2.2.28','2.2.30','2.2.31')
THEN ' VENDAS'
ELSE
CASE WHEN TTMV.CODTMV LIKE '2.2.04'
THEN 'BONIFICAÇÃO'
ELSE
CASE WHEN TTMV.CODTMV IN('1.2.34','1.2.50','1.2.02','1.2.20','1.2.23','1.2.25')
THEN 'VENDAS CANCELADAS'
ELSE
CASE WHEN TTMV.CODTMV IN ('1.2.99')
THEN 'REFATURADAS'
END END END END) AS TIPO_VENDA,
TVEN.NOME AS VENDEDOR,

(SUM(TITMMOV.VALOROPFRM2)/(CASE WHEN TPRD.PESAVEL=1
THEN SUM(TITMMOV.VALOROPFRM1)
ELSE SUM(TITMMOV.QUANTIDADE*TPRD.PESOLIQUIDO) END)) AS PRATICADO,

TRPR.NOMEFANTASIA AS SUPERVISOR,
SUBSTRING(TPRD.CODIGOPRD,1,5) AS FAMILIA,
(CASE WHEN SUBSTRING(TPRD.CODIGOPRD,1,5) IN ('01.06') THEN 'FINOS' ELSE 'DIAaDIA' END) AS LINHA,
SUBSTRING(TPRD.CODIGOPRD,1,8) AS CODPRD,
TMOV.NUMEROMOV AS NF,
TCPG.NOME AS PRAZO,
TPRD.CODIGOAUXILIAR AS AUX,
TPRD.NOMEFANTASIA AS DESCRIÇÃO


FROM FCFO, GCOLIGADA, GFILIAL, GMUNICIPIO, TITMMOV, TMOV, TPRD, TTMV,TRPR,TVEN, FCFODEF, TCPG

WHERE (GFILIAL.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TMOV.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TMOV.CODFILIAL = GFILIAL.CODFILIAL) AND
(TMOV.IDMOV = TITMMOV.IDMOV) AND
(TMOV.CODCFO = FCFO.CODCFO) AND
(TMOV.CODTMV = TTMV.CODTMV) AND
(TITMMOV.IDPRD = TPRD.IDPRD) AND
(TTMV.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TTMV.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TMOV.CODCPG=TCPG.CODCPG) AND
(TTMV.CODTMV IN ('2.2.01','2.2.13','2.2.09','2.2.16','2.2.25','2.2.28','2.2.30','2.2.31','2.2.04','1.2.02','1.2.20','1.2.23','1.2.25','1.2.34','1.2.50','1.2.99')) AND
(TPRD.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
FCFO.CODMUNICIPIO=GMUNICIPIO.CODMUNICIPIO AND
FCFO.CODETD=GMUNICIPIO.CODETDMUNICIPIO AND
TMOV.STATUS NOT IN ('C') AND
TMOV.DATAEMISSAO>=:DATA_INICIAL_D AND
TMOV.DATAEMISSAO<=:DATA_FINAL_D AND
FCFO.CODCFO=FCFODEF.CODCFO AND
FCFODEF.CODVEN*=TVEN.CODVEN AND
FCFODEF.CODRPR*=TRPR.CODRPR

GROUP BY TPRD.DESCRICAO, GCOLIGADA.NOME, TMOV.CODFILIAL , FCFO.CODCFO, FCFO.RUA, FCFO.BAIRRO, FCFO.NOME,
FCFO.NOMEFANTASIA,GMUNICIPIO.NOMEMUNICIPIO,TMOV.DATAEMISSAO,TTMV.CODTMV,TPRD.PESAVEL,
TITMMOV.QUANTIDADE,TPRD.PESOLIQUIDO,TVEN.NOME,TRPR.NOMEFANTASIA,TPRD.CODIGOPRD, TMOV.NUMEROMOV, TCPG.NOME, TPRD.CODIGOAUXILIAR, TPRD.NOMEFANTASIA, TMOV.PLACA


UNION

SELECT TPRD.DESCRICAO AS PRODUTOS,
TMOV.CODFILIAL AS FILIAL,
TMOV.PLACA AS PLACA,
FCFO.CODCFO AS COD_CLI,
FCFO.NOME AS CLIENTE,
FCFO.NOMEFANTASIA AS FANTASIA,
FCFO.RUA AS ENDERECO,
FCFO.BAIRRO AS BAIRRO,
GMUNICIPIO.NOMEMUNICIPIO MUNICÍPIO,
DATEPART(YEAR,TMOV.DATASAIDA) AS ANO,
DATEPART(MONTH,TMOV.DATASAIDA) AS MES,
DATEPART(DAY,TMOV.DATASAIDA) AS DIA,
SUM(TITMMOV.QUANTIDADE) AS FORMA,
(CASE WHEN TPRD.PESAVEL=1
THEN SUM(TITMMOV.VALOROPFRM1)
ELSE SUM(TITMMOV.QUANTIDADE*TPRD.PESOLIQUIDO) END) AS KG,
SUM(TITMMOV.VALOROPFRM2) AS VALOR,
SUM(TITMMOV.VALOROPFRM2) AS PERC,
(CASE WHEN TTMV.CODTMV IN ('1.2.13','1.2.14','1.2.15','1.2.35')
THEN 'DEVOLUÇÃO'
END ) AS TIPO_VENDA,
TVEN.NOME AS VENDEDOR,

(SUM(TITMMOV.VALOROPFRM2)/(CASE WHEN TPRD.PESAVEL=1

THEN SUM(TITMMOV.VALOROPFRM1)
ELSE SUM(TITMMOV.QUANTIDADE*TPRD.PESOLIQUIDO) END)) AS PRATICADO,

TRPR.NOMEFANTASIA AS SUPERVISOR,
SUBSTRING(TPRD.CODIGOPRD,1,5) AS FAMILIA,
(CASE WHEN SUBSTRING(TPRD.CODIGOPRD,1,5) IN ('01.06') THEN 'FINOS' ELSE 'DIAaDIA' END) AS LINHA,
SUBSTRING(TPRD.CODIGOPRD,1,8) AS CODPRD,
TMOV.NUMEROMOV AS NF,
TCPG.NOME AS PRAZO,
TPRD.CODIGOAUXILIAR AS AUX,
TPRD.NOMEFANTASIA AS DESCRIÇÃO


FROM FCFO, GCOLIGADA, GFILIAL, GMUNICIPIO, TITMMOV, TMOV, TPRD, TTMV,TRPR,TVEN, FCFODEF, TCPG

WHERE (GFILIAL.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TMOV.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TMOV.CODFILIAL = GFILIAL.CODFILIAL) AND
(TMOV.IDMOV = TITMMOV.IDMOV) AND
(TMOV.CODCFO = FCFO.CODCFO) AND
(TMOV.CODTMV = TTMV.CODTMV) AND
(TITMMOV.IDPRD = TPRD.IDPRD) AND
(TTMV.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TTMV.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
(TMOV.CODCPG=TCPG.CODCPG) AND
(TTMV.CODTMV IN ('1.2.13','1.2.14','1.2.15','1.2.35')) AND
(TPRD.CODCOLIGADA = GCOLIGADA.CODCOLIGADA) AND
FCFO.CODMUNICIPIO=GMUNICIPIO.CODMUNICIPIO AND
FCFO.CODETD=GMUNICIPIO.CODETDMUNICIPIO AND
TMOV.STATUS NOT IN ('C') AND
TMOV.DATASAIDA>=:DATA_INICIAL_D AND
TMOV.DATASAIDA<=:DATA_FINAL_D AND
FCFO.CODCFO=FCFODEF.CODCFO AND
FCFODEF.CODVEN*=TVEN.CODVEN AND
FCFODEF.CODRPR*=TRPR.CODRPR

GROUP BY TPRD.DESCRICAO, GCOLIGADA.NOME, TMOV.CODFILIAL , FCFO.CODCFO, FCFO.RUA, FCFO.BAIRRO, FCFO.NOME,
FCFO.NOMEFANTASIA,GMUNICIPIO.NOMEMUNICIPIO,TMOV.DATASAIDA,TTMV.CODTMV,TPRD.PESAVEL,
TITMMOV.QUANTIDADE,TPRD.PESOLIQUIDO,TVEN.NOME,TRPR.NOMEFANTASIA,TPRD.CODIGOPRD, TMOV.NUMEROMOV, TCPG.NOME, TPRD.CODIGOAUXILIAR, TPRD.NOMEFANTASIA, TMOV.PLACA

Link para comentar
Compartilhar em outros sites

  • 3 semanas depois...
  • Solução

  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.842
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.579
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

O que ocorre é que, mesmo tendo tratado com IF a parte onde tem divisão, ela continua gerando uma divisão por zero.

Você tem que analisar o conteúdo para ver neste caso, se não seria melhor colocar no IF uma divisão por 1 (fixa) ou tratar de outra forma. As vezes seria melhor tratar no WHERE para alguns registros que tragam essa situação não sejam considerados. Mas cada caso é um caso.

Espero que consiga localizar o que está causando o problema o quanto antes.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  24
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  82
  • Conteúdo/Dia:  0.03
  • Reputação:   2
  • Pontos/Conquistas:  652
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Obrigado amigo, consegui, tratei por if mesmo.

Deu certo, atendeu as necessidades da empresa, o problema na verdade foi um aparelho coletor que não estava passando o número de caixas para o sistema e como existe aqui a divisão por nº de caixas o erro apareceu.

Enfim a sentença estava funcionando corretamente também. Obrigado amigo.

 

(RESOLVIDO)

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

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

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

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

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.