我正在DB2V10中执行以下SQL。
select
SUM (ORD_QTY * IFNULL(SELL_AMT,0) * IFNULL(WGT_QTY,0))
INTO :WS-VAR FROM TABA with ur;
ORD_QTY => INTEGER
SELL_AMT => DECIMAL(13,4)
WGT_QTY => DECIMAL(11,4)
WS-VAR => PIC S9(13)V9(4) USAGE COMP-3.
我收到+802 DECIMAL OVERFLOW错误。
我不明白为什么我在这里得到十进制溢出。有人可以解释我!
答案 0 :(得分:1)
根据numeric result rules,SUM (ORD_QTY * IFNULL(SELL_AMT,0) * IFNULL(WGT_QTY,0))
得到的精度为DECIMAL(15,4)
,其值可以保持10 11 范围。
同时,实际结果可能在10 10 * 10 9 * 10 7 的范围内,加起来10 26 。