我有以下查询:
SELECT count(*)
FROM table1 ACTUAL, table1 ANTERIOR
ACTUAL.fecha=to_date(20180102,'YYYYMMDD') AND ANTERIOR.fecha=to_date(20180101,'YYYYMMDD')
WHERE ACTUAL.CONTRATO=ANTERIOR.CONTRATO
AND ACTUAL.SECCION=ANTERIOR.SECCION
AND (
ACTUAL.CD_EMPR_COM<>ANT.CD_EMPR_COM
OR NVL(ACTUAL.FH_BAJA_CRTO,'9999-01-01')<>NVL(ANTERIOR.FH_BAJA_CRTO,'9999-01-01')
OR NVL(ACTUAL.POWER,0)<>NVL(ANTERIOR.POWER_1,0)
--ERROR, THE NUMBER RESULTANT NOT IS CORRECT
-OR NVL(ACTUAL.POWER,-9)<>NVL(ANTERIOR.POWER,-9)
)
如果我应用过滤器NVL (ACTUAL.POWER, 0)
,结果是正确的,但如果我应用过滤器NVL (ACTUAL.POWER, 1)
或NVL (ACTUAL.POWER, -9)
查询的结果不正确。