Oracle总和不正确

时间:2014-10-14 18:34:16

标签: sql oracle

我使用SQL * Plus创建了一个“报告”,它从OLTP表中添加数据并将结果通过电子邮件发送给一大群用户。

我发现了一个问题。表CATEGORIES中的总数是错误的

SQL> select * from CATEGORIES;

DATE              P4         D1          D2          P5          P6       P7       TOTAL            
--------- ---------- ---------- ----------- ----------- ----------- -------- -----------            
14-OCT-14    200,623  2,320,173   6,807,295  17,861,027  17,386,567  803,982  45,379,667   

应该是“45,379,307”而不是“45,379,667”。

此表包含NUMBER(10)列,基表有NUMBER列(无精度),用于存储类别P4,D1,D2 ......

CATEGORIES表中的总数是从基表CATG_ACTV中获得的。

UPDATE CATEGORIES
   SET TOTAL = (SELECT SUM(total_catg_count) FROM CATG_ACTV);

为什么总不正确?是因为NUMBER列的大小不正确吗?怎么解决这个问题?

1 个答案:

答案 0 :(得分:5)

我知道你做了什么。当你进行算术运算时,你转换了数字。您使用200263代替200623

200263 + 2320173 + 6807295 + 17861027 + 17386567 + 803982 = 45379307