0

しばらく DB2 クエリを実行していないため、Select ステートメントの数式に問題があります。エラーはスローされませんが、間違った結果が得られます。DB2 が式を評価する方法を誰か教えてもらえますか? 私の選択の一部は以下のとおりです。

値は次のとおりです。

  • t1.ポイント = 100
  • t2.関与点 = 1
  • (現在の日付 - t1.fromdt) の日数は 1268 です (したがって、現在の日付は 2013 年 7 月 19 日 - 2010 年 1 月 28 日になります)

(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;
4

2 に答える 2

0

これのことですか?

...
(T1.POINTS * T2.INVOLVEPOINTS) * (1 - .000274 * ( DAYS(CURRENT DATE) - DAYS(T1.FROMDT) ) ) 
...

日付の減算を囲む余分な括弧のペアに注意してください。通常、乗算は加算よりも優先されるため、元のクエリでは、今日の日付に 0.000274 を掛けて、1 から減算し、結果から FROMDT の値を減算します。

興味深いことに、説明にはこれらの括弧がありますが、実際の式にはありません。

于 2013-07-19T19:46:06.560 に答える