Я некоторое время не выполнял запросы к DB2, поэтому у меня возникли проблемы с математическим выражением в моем операторе Select. Он не выдает ошибку, но я получаю неправильный результат. Может ли кто-нибудь сказать мне, как DB2 оценивает выражение? Часть моего выбора ниже.
Значения:
- t1.Очки = 100
- t2.Involvepoints = 1
- (текущая дата - t1.fromdt) в днях составляет 1268 (так что это будет текущая дата 19.07.2013 - 28.01.2010 в днях)
Должно читаться как (100 * 1) * (1 - (.000274 * 1268)) = 65,2568.
SELECT Value1,
value2,
(CASE
WHEN (T1.POINTS * T2.INVOLVEPOINTS) * (1 - .000274 * DAYS(CURRENT DATE) - DAYS(T1.FROMDT)) >= 0 THEN (T1.POINTS * T2.INVOLVEPOINTS) * (1 - .000274 * DAYS(CURRENT DATE) - DAYS(T1.FROMDT))
ELSE 0
END) AS POINTSTOTAL
FROM TABLE1;