Calcular % em querys
Boa tarde, criei a seguinte query:
select b.data,
a.desc_grupo AS GRUPO,
a.desc_variavel AS INDICADOR,
b.vl_dia AS DIA_PREV,
nvl(c.vl_dia, 0) + nvl(d.vl_dia, 0) AS DIA_REALIZ,
b.vl_mes AS MES_PREV,
nvl(c.vl_mes, 0) + nvl(d.vl_mes, 0) AS MES_REALIZ,
b.vl_ANO AS ACUM_PREV,
nvl(c.vl_ANO, 0) + nvl(d.vl_ANO, 0) AS ACUM_REALIZ
from PIMSPRD.tbita_bi_indicadores a
inner join pimsprd.tbita_bi_indicPREV b on b.indicador = a.indicador
left join pimsprd.tbita_bi_indicREALIZ c on c.data = b.data
and c.indicador = a.indicador
left join pimsprd.tbita_bi_indicREALIZ_MANUAL d on d.data = b.data
and d.indicador =
a.indicador
WHERE B.DATA = TO_DATE(SYSDATE - 1, 'DD/MM/YYYY')
order by C.DATA, A.GRUPO, A.ORDEM_SEQ
Ai surgiu a necessidade de efetuar o calculo da variação entre o DIA_PREV e DIA_REALIZ, adicionei o seguinte campo ( esta comentado):
b.vl_dia AS DIA_PREV,
nvl(c.vl_dia, 0) + nvl(d.vl_dia, 0) AS DIA_REALIZ,
-- ((nvl(c.vl_dia, 0) + nvl(d.vl_dia, 0)/ b.vl_dia)*100),
Porém acontece que alguns indicadores previstos são com o valor 0 e alguns realizados são 0 também, ou seja, fazendo esse comando direto aparece a mensagem: divisor is equal to zero, alguém sabe alguma operação ou maneira diferente que eu possa estar fazendo?
Discussão (3)
Carregando comentários...