Redshift NVL () дает неправильный ответ - PullRequest
0 голосов
/ 29 ноября 2018

У меня следующий запрос:

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) результат запросане правильно.

...