Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ricardosoares1rj

Erro divisão por zero

Recommended Posts

pessoal eu to com um problema onde o meu select ta dando esse erro: Divide by zero error encountered.

ja tentei essa função SET ARITHIGNORE e mesmo assim continuou o select é esse

 

 

SELECT '2008-04-20' AS DATA,

SUM(TOTAL_FUNC) as TOTAL_FUNC,

SUM(TOTAL_OPR) as TOTAL_FUNCOPER,

SUM(TOTAL_ORFAOS) AS TOTAL_ORFAOS,

SUM(Not Null(TOTAL_ORFAOS * 100)/TOTAL_FUNC)AS PERCENTUAL

FROM (

SELECT COUNT(*) AS TOTAL_FUNC,

0 AS TOTAL_OPR,

0 AS TOTAL_ORFAOS

FROM FP1FUNC

WHERE SITUACAO = 1 AND

((FUNCAO IS NOT NULL) or (FUNCAO = ''))

AND (MATRROSTO NOT LIKE 'E%')

AND (MATRROSTO NOT LIKE 'SMA%')

AND (MATRROSTO NOT LIKE 'CSL%')

AND (MATRROSTO NOT LIKE 'POA%')

AND (MATRROSTO NOT LIKE 'RJ%')

 

UNION

 

SELECT

0 AS TOTAL_FUNC,

COUNT(*) AS TOTAL_OPR,

0 AS TOTAL_ORFAOS

FROM FP1FUNC X

JOIN ETE..CAD_FUNCAO Y

ON X.Funcao = Y.ID

JOIN ETE..SEG_FUNCAO_ETExINSPECAO Z

ON Y.ID = Z.FUNCAO_ETEID

WHERE Situacao = 1

AND Situacao = '1'

AND (X.MATRROSTO NOT LIKE 'E%')

AND (X.MATRROSTO NOT LIKE 'SMA%')

AND (X.MATRROSTO NOT LIKE 'CSL%')

AND (X.MATRROSTO NOT LIKE 'POA%')

AND (X.MATRROSTO NOT LIKE 'RJ%')

 

UNION

 

SELECT 0 AS TOTAL_FUNC,

0 AS TOTAL_OPR,

COUNT(*) AS TOTAL_ORFAOS

FROM FP1FUNC A

JOIN ETE..SEG_FUNCAO_ETExINSPECAO B

ON A.FUNCAO = B.FUNCAO_ETEID

JOIN ETE..CAD_FUNCAO C

ON A.FUNCAO = C.ID

WHERE MATRICULA NOT IN (SELECT DISTINCT MATRICULA FROM SEG_REL_INSPECAO

WHERE DATA BETWEEN '2008-01-20' AND '2008-04-20')

AND SITUACAO = '1'

AND (A.MATRROSTO NOT LIKE 'E%')

AND (A.MATRROSTO NOT LIKE 'SMA%')

AND (A.MATRROSTO NOT LIKE 'CSL%')

AND (A.MATRROSTO NOT LIKE 'POA%')

AND (A.MATRROSTO NOT LIKE 'RJ%')

 

)AS T

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só tratar a parte da divisão (campo PERCENTUAL) com a função CASE, caso o campo TOTAL_FUNC for 0 retorna 0 senão faz a conta como já esta fazendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.