当我说:
NVL(OSS_REALIZADAS_MEN.NUMERO_DE_OS * 1,0) +
NVL(OSS_REALIZADAS_BIM.NUMERO_DE_OS * 2,0) +
NVL(OSS_REALIZADAS_TRI.NUMERO_DE_OS * 2,0) + NVL(OSS_REALIZADAS_SEM.NUMERO_DE_OS * 3,0) +
NVL(OSS_REALIZADAS_ANU.NUMERO_DE_OS * 5,0) as Realizadas_Tot,
NVL(OSS_PROGRAMADAS_MEN.NUMERO_DE_OS * 1,0) +
NVL(OSS_PROGRAMADAS_BIM.NUMERO_DE_OS * 2,0) +
NVL(OSS_PROGRAMADAS_TRI.NUMERO_DE_OS * 2,0) +
NVL(OSS_PROGRAMADAS_SEM.NUMERO_DE_OS * 3,0) +
NVL(OSS_PROGRAMADAS_ANU.NUMERO_DE_OS * 5,0) as Programadas_Tot
然后Programadas_Tot和Realizadas_Tot带给我一些整数。 但需要将它们分开:
(
NVL(OSS_REALIZADAS_MEN.NUMERO_DE_OS * 1,0) +
NVL(OSS_REALIZADAS_BIM.NUMERO_DE_OS * 2,0) +
NVL(OSS_REALIZADAS_TRI.NUMERO_DE_OS * 2,0) +
NVL(OSS_REALIZADAS_SEM.NUMERO_DE_OS * 3,0) +
NVL(OSS_REALIZADAS_ANU.NUMERO_DE_OS * 5,0)
)
/
(
NVL(OSS_PROGRAMADAS_MEN.NUMERO_DE_OS * 1,0) +
NVL(OSS_PROGRAMADAS_BIM.NUMERO_DE_OS * 2,0) +
NVL(OSS_PROGRAMADAS_TRI.NUMERO_DE_OS * 2,0) +
NVL(OSS_PROGRAMADAS_SEM.NUMERO_DE_OS * 3,0) +
NVL(OSS_PROGRAMADAS_ANU.NUMERO_DE_OS * 5,0)
)
as APPtot
但是它显示了错误“ ORA-01476除数等于零”。 我读了很多有关解码和大小写的信息,但我认为这并不是我想做的。 我对NVL和NVL2进行了很多尝试,但这使我一直在说。 已经谢谢了!
答案 0 :(得分:0)
对于那些可能遇到与我相同的问题的人,这是我的解决方案:
NVL(
NULLIF(
NVL(OSS_REALIZADAS_MEN.NUMERO_DE_OS * 1,0) +
NVL(OSS_REALIZADAS_BIM.NUMERO_DE_OS * 2,0) +
NVL(OSS_REALIZADAS_TRI.NUMERO_DE_OS * 2,0) +
NVL(OSS_REALIZADAS_SEM.NUMERO_DE_OS * 3,0) +
NVL(OSS_REALIZADAS_ANU.NUMERO_DE_OS * 5,0)
,0)
/
NULLIF(
NVL(OSS_PROGRAMADAS_MEN.NUMERO_DE_OS * 1,0) +
NVL(OSS_PROGRAMADAS_BIM.NUMERO_DE_OS * 2,0) +
NVL(OSS_PROGRAMADAS_TRI.NUMERO_DE_OS * 2,0) +
NVL(OSS_PROGRAMADAS_SEM.NUMERO_DE_OS * 3,0) +
NVL(OSS_PROGRAMADAS_ANU.NUMERO_DE_OS * 5,0),0)
,0)
* 100 AS APP