Я пытаюсь сравнить два поля smallint, чтобы найти различия. Одна таблица представляет собой таблицу ожидающих изменений, которая считывается ночью пакетным заданием, которое затем обновляет другую таблицу наряду с выполнением других действий. Пакетное задание имеет некоторые проблемы, и я исследую проблемы. Я хочу найти те значения, которые отличаются, и показать, какое значение таблицы в ожидании, когда это произойдет.
Конкретные столбцы (CO_FT_FREQ_DAY), которые доставляют мне проблемы, имеют нули в поле smallint, и я думаю, что это является причиной моих проблем. (или это может быть отложенное добавление, поэтому нет подходящего значения для сравнения...) Как видите, я пытался решить проблему, но это все еще не работает.
Я пробовал ifnull до этого, но получил та же ошибка. Я надеялся, что это решит проблему.
SELECT T342.clientID
,T342.TS_340
,case when (case when t342.CO_FT_FREQ_DAY is null then 0 else
t342.CO_FT_FREQ_DAY end) <>
(case when t340.CO_FT_FREQ_DAY is null then 0 else
t340.CO_FT_FREQ_DAY end)
then T342.CO_FT_FREQ_DAY
else 0
end as CO_FT_FREQ_DAY
FROM database.PendingChangeTable T342
left outer join database.CurrentTable T340
on T340.ClientID = T342.ClientID
and T340.TS_PK = T342.TS_340
WHERE t342.clientID in (clientID list);
DSNT408I SQLCODE = -420, ОШИБКА: ЗНАЧЕНИЕ СТРОКОВОГО АРГУМЕНТА НЕ БЫЛО
ПРИЕМЛЕМЫМ ДЛЯ ФУНКЦИИ DECFLOAT
DSNT418I SQLSTATE = 22018 SQLSTATE КОД ВОЗВРАТА