今天在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)结果不一致问题的更多相关文章

  1. 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题是存储的当前累加和的 ...

  2. python 中的sum( )函数 与 numpy中的 sum( )的区别

    一. python sum函数 描述: sum() 对序列进行求和 用法: sum(iterable[, start]) iterable:可迭代对象,例如,列表,元组,集合. start:指定相加的 ...

  3. 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), ...

  4. [HEOI2016]求和 sum

    [HEOI2016]求和 sum 标签: NTT cdq分治 多项式求逆 第二类斯特林数 Description 求\[\sum_{i=0}^n\sum_{j=0}^i S(i,j)×2^j×(j!) ...

  5. oracle累积求和分析函数sum over的使用

    oracle sum()over函数的使用 over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用. over函数的参数:over(partit ...

  6. HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)

    题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description   Sample Input 2 Sample Outp ...

  7. sum() 求和用法

    def func(*args): # sum = 0 # for el in args: # sum += el # return sum return sum(args) # sum() 求和 de ...

  8. 307. Range Sum Query - Mutable查询求和的范围(可变)

    [抄题]: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inc ...

  9. 水晶报表分组,统计,求和,sum()函数使用

    --Sum()函数统计的是明细所有的和 Sum(字段名) --根据分组字段统计的和 Sum ({xh_Getdinggoudan;1.Djine} ,{xh_Getdinggoudan;1.Ddgda ...

随机推荐

  1. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第五章:排序、分页和路由

    本章的重点是对产品信息增加排序和分页的功能,以及使用ASP.NET Routing特性添加更加友好的URL支持. 注意:如果你想按照本章的代码编写示例,你必须完成第四章或者直接从www.apress. ...

  2. log4j2日志配置

    背景 log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等. 1. ...

  3. 记一次kali和win8.1的双系统修复!!

    简要情况: 原来电脑存在的系统:win7和kali. 后来的系统:win8.1和原本的kali 情况描述:在我装完win8.1后就直接启动到win8.1了没有了grub2的选择启动界面,但是我还是想要 ...

  4. 使用Asponse.Cell解决Excel科学计数法问题

    //fileName --文件路径 public DataSet DataSetGetDataFromExcel(string fileName) { DataSet dataset = new Da ...

  5. package com.sun.image.codec.jpeg does not exist

    rt.jar 是sun公司内部使用的包,不建议外部使用,rt.jar是被用了的,但是里面的com.sun下面的包不被默认加载了, JAVA7之前是默认加载的,所有用JAVA7以前的JDK编译是通过的. ...

  6. JS代码:设为首页 加入收藏

    // JavaScript Document // 加入收藏 <a onclick="AddFavorite(window.location,document.title)" ...

  7. php学习笔记——语言切换

    现在的网站很多都可以实现多语言,于是记录一下多语言的实例. 方法一:通过将所有显示在页面的字段放在一个message文件里面来实现 思路如下图: test代码: main.php: <?php ...

  8. String.split()分割字符串

    string.split(s[, sep[, maxsplit]]) Return a list of the words of the string s. If the optional secon ...

  9. Tomcat启动极慢问题

    启动后,catalina.out日志中会有如下打印: INFO: Creation of SecureRandom instance ,] milliseconds 具体原因,有兴趣的可以自己百度一下 ...

  10. .Net异步函数存在的限制

    本文摘录自CLR Via C# 第四版. 异步函数存在以下限制: 1.不能讲应用程序的Main方法转变成异步函数.另外,构造器.属性访问器方法和时间访问器方法不能转变成异步函数. 2.异步函数不能使用 ...