ORACEL12c求和SUM(a+b)与SUM(a)+SUM(b)结果不一致问题
今天在oracle12c数据库遇到的问题,下面重现一下:
1、先创建一个临时表 temp、一个数据表bitest_sum;
-- Create table
create table PEC.BITEST_SUM
(
yyyymm VARCHAR2(6),
factno VARCHAR2(4),
dept_no VARCHAR2(4),
product VARCHAR2(6),
amt NUMBER default 0 not null,
amt_ys NUMBER default 0 not null
)
tablespace BITBS;
-- Add comments to the table
comment on table PEC.BITEST_SUM
is 'SUM结果测试';
-- Create/Recreate indexes
create index PEC.BITEST_SUM_01 on PEC.BITEST_SUM (YYYYMM, FACTNO, DEPT_NO, PRODUCT)
tablespace IDX_BI;
2、插入各维度数据到temp
DELETE FROM gt_temp;
INSERT INTO gt_temp
(main_code,
v1
)
SELECT 'A','AA01' FROM dual; INSERT INTO gt_temp
(main_code,
v1
)
SELECT 'B',DEPT_NO FROM(
select 'BB'||dbms_random.string('x',2) DEPT_NO from dual) CONNECT BY ROWNUM <= 1000; INSERT INTO gt_temp
(main_code,
v1
)
SELECT 'C', lpad(ROWNUM,6,'') FROM dual CONNECT BY ROWNUM <=1000;
3、插入维度数据及随机值到结果表 bitest_sum
DECLARE
CURSOR C1 IS
SELECT v1 FROM pec.gt_temp WHERE main_code='A';
CURSOR C2 IS
SELECT v1 FROM pec.gt_temp WHERE main_code='B';
CURSOR C3 IS
SELECT v1 FROM pec.gt_temp WHERE main_code='C';
BEGIN
FOR R1 IN C1 LOOP
FOR R2 IN C2 LOOP
FOR R3 IN C3 LOOP
INSERT INTO BITEST_SUM
SELECT '',a.v1,b.v1,c.v1, d.amt1,D.AMT2 FROM
gt_temp a,gt_temp b,gt_temp c,
(SELECT round(dbms_random.value(-10000,99999),2) amt1 ,round(dbms_random.value(-10000,99999),2) amt2 FROM dual) d
WHERE a.main_code='A' AND A.V1=R1.V1
AND B.MAIN_CODE='B' AND B.V1=R2.V1
AND C.MAIN_CODE='C' AND C.V1=R3.V1;
END LOOP;
END LOOP;
END LOOP;
END;
COMMIT;
4、检查数据结果

5、对结果数据进行update操作。提交之后再查询:
UPDATE pec.bitest_sum2 SET amt_ys=0 WHERE amt_ys<0 AND product LIKE '000%';

pass:加“group by 1”在sql中数据是对的,金额字段加nvl(amt,0)数据也是对的。
此问题已反馈给ORACLE,后续有结果再补充。
ORACEL12c求和SUM(a+b)与SUM(a)+SUM(b)结果不一致问题的更多相关文章
- leetcode 560. Subarray Sum Equals K 、523. Continuous Subarray Sum、 325.Maximum Size Subarray Sum Equals k(lintcode 911)
整体上3个题都是求subarray,都是同一个思想,通过累加,然后判断和目标k值之间的关系,然后查看之前子数组的累加和. map的存储:560题是存储的当前的累加和与个数 561题是存储的当前累加和的 ...
- python 中的sum( )函数 与 numpy中的 sum( )的区别
一. python sum函数 描述: sum() 对序列进行求和 用法: sum(iterable[, start]) iterable:可迭代对象,例如,列表,元组,集合. start:指定相加的 ...
- 1. Two Sum + 15. 3 Sum + 16. 3 Sum Closest + 18. 4Sum + 167. Two Sum II - Input array is sorted + 454. 4Sum II + 653. Two Sum IV - Input is a BST
▶ 问题:给定一个数组 nums 及一个目标值 target,求数组中是否存在 n 项的和恰好等于目标值 ▶ 第 1题,n = 2,要求返回解 ● 代码,160 ms,穷举法,时间复杂度 O(n2), ...
- [HEOI2016]求和 sum
[HEOI2016]求和 sum 标签: NTT cdq分治 多项式求逆 第二类斯特林数 Description 求\[\sum_{i=0}^n\sum_{j=0}^i S(i,j)×2^j×(j!) ...
- oracle累积求和分析函数sum over的使用
oracle sum()over函数的使用 over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用. over函数的参数:over(partit ...
- HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description Sample Input 2 Sample Outp ...
- sum() 求和用法
def func(*args): # sum = 0 # for el in args: # sum += el # return sum return sum(args) # sum() 求和 de ...
- 307. Range Sum Query - Mutable查询求和的范围(可变)
[抄题]: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inc ...
- 水晶报表分组,统计,求和,sum()函数使用
--Sum()函数统计的是明细所有的和 Sum(字段名) --根据分组字段统计的和 Sum ({xh_Getdinggoudan;1.Djine} ,{xh_Getdinggoudan;1.Ddgda ...
随机推荐
- spring_boot打jar包及打包错误的解决方法
问题产生及解决 对于刚接手spring_boot的人,可能会感觉到很茫然无措,看到书上写的spring_boot是直接打包成jar包,使用java -jar *运行.然而却不知道该怎么打包.而创建sp ...
- struts2 ValueStack(值栈)解析
Struts2一个重要点就是值栈. ValueStack,是用来存储一些在各个action,或者说是通过s标签.el表达式等给前台Jsp等页面展示的东西. ValueStack是一个接口,其内部接口非 ...
- 笔记本WiFi共享
1.桌面右击新建txt文件复制下面两行代码,修改文件后缀名为bat保存文件 netsh wlan set hostednetwork mode=allow ssid=zhangxh key=xiaoh ...
- Unity在安卓的一些路径
APK安装之后找不到路径 公司的测试机(安卓)基本都是不带SD卡的. APK在安卓手机上安装之后,使用手机助手类的软件打开文件管理,打开 内置SDK卡/Android/data/ 在这个目录下却发现 ...
- ListView控制消息
ListView控制消息 ListView控制消息是提供给父窗口或其他窗口通过发消息来控制ListView窗口本身. ListView控件提供给了以下消息来让外部程序控制自身: ListView_Ap ...
- windows下的畸形目录和文件的创建与删除
畸形目录的创建 md c:\a..\ 删除畸形目录 rd /s /q c:\a..\ 创建畸形文件 1 echo text> \\.\c:\aux..txt 读取畸形文件 type \\.\c: ...
- [大山中学dp常练-4 Rounds]
Round#1 2016.9.28 这次晚练十分sb 有点浪费时间 全是dp题 先说过程 3分钟草了第一题之后感觉好像有点水 然后翻了翻题目 看了看第一第四题两颗星 其他三颗星 然后一下子第二题题目太 ...
- SDN理解:SDN现状
目录 - SDN现状 - (一)SDN现状 - SDN诞生的背景 - SDN的介绍 - (二)SDN领域的相关组织和发展现状 - 1.ONF - 2.OpenDaylight - 3. IETF - ...
- 将Cygwin Emacs设为Windows explorer默认打开程序
由于我在平日的学习与工作中会经常用到Cygwin中的Emacs,很自然地想到应该将emacsclient作为指定文件类型在Windows explorer中的默认打开程序.这样,便可以直接双击文件后在 ...
- maven项目如何引用本地的jar包
下载该jar包到本地(如下载目录结构为:D:\Users\lu.wang\Downloads\searchservice\searchservice\jar\ttd.search.searchserv ...