我使用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列的大小不正确吗?怎么解决这个问题?
答案 0 :(得分:5)
我知道你做了什么。当你进行算术运算时,你转换了数字。您使用200263
代替200623
。
200263 + 2320173 + 6807295 + 17861027 + 17386567 + 803982 = 45379307