问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle 需要把循环的结果相加,求指导

发布网友 发布时间:2022-04-09 06:55

我来回答

4个回答

懂视网 时间:2022-04-09 11:16

 

 

最近遇到一个比较常见的问题,每行记录需要累加求和。这些问题倒不是有多难,主要是在工作的过程中会经常遇到,特别是Oracle自带的一些函数也能够很好地解决这样一些通用的查询计算,在此记录一下。

问题描述:比如查询记录有5行,每行记录有一个数值型的字段。第2行为第1、2行的和;第3行为第1、2、3行的和;第4行为第1、2、3、4行的和;后面依此类推……

解决办法:使用Oracle自带的Over函数。如下例子:

1.建测试表EMP

-- Create table

create table EMP

(

DEPTNO NUMBER(4),

ENAME VARCHAR2(20),

SAL NUMBER(10)

)

tablespace OGDP

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 16

minextents 1

maxextents unlimited

);

2.插入测试数据

insert into emp (DEPTNO,ENAME,SAL) values (1,‘CLARK‘,2450);

insert into emp (DEPTNO,ENAME,SAL) values (2,‘SMITH‘,3000);

insert into emp (DEPTNO,ENAME,SAL) values (3,‘ALLEN‘,1250);

insert into emp (DEPTNO,ENAME,SAL) values (4,‘JAMES‘,950);

 

查询结果如下:

 

 

3.编写SQL(用Over函数)

select t.deptno,

       t.sal,

       sum(t.sal) over (order by t.deptno) AccuSal

from emp t

 

查询结果如下: 

 

 

如上所示就是需要的效果,更多关于Over函数可以参考以下:

 

Oracle逐行累加求和

标签:

热心网友 时间:2022-04-09 08:24

另外声明一个变量 sum_num number ; 初始值 := 0 ;

然后
num:=num + i.num(/*想把循环的结果相加*/)

改成
sum_num := sum_num + num ;

最后return sum_num ;
调试看看看。

热心网友 时间:2022-04-09 09:42

首先判断你的那些字段的数据类型,然后循环前要给起始值,不然容易报错。建议char 和varchar2做参要注意。建议用pl/sql工具测试下,单步进入就可以发现问题了

热心网友 时间:2022-04-09 11:17

num需要在循环开始前赋初值:
num := 0;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...爱你你是我的罗密欧 , 我愿意变成你的朱丽叶' 谁知 有句歌词是“我爱你你是我的朱丽叶,我愿意变成你的梁山伯”是哪... 为什么打印出来的文档页码和原来的不一样 ...两台电脑用路由器上网一台是W7一台是XP如何实现两台电脑共享文件 win7怎么联另一台电脑win7怎么让网络和另一台电脑共享 w7的系统怎么共享电脑w7系统里面文件怎么共享另一台电脑 共享win7电脑w7系统里面文件怎么共享另一台电脑 翡翠有收藏价值吗,我们玩家如何去投资 价格一两万元的翡翠如何挑选 ppt怎么转换成视频?简单四步法,轻松搞定ppt微课录制 我被村干部踢出微信里,我可以告他吗? 镀锌勾花网和菱形网有哪些区别 PE勾花网是什么意思? 石笼网和菱形网的区别 为什么格宾网要用双绞结构编织 菱形网的PVC浸塑菱形网 oracle中怎么将每条记录中的值加起来呢 请问下农村信用社现在可以贷款吗?荆州市监利县的 word 关闭时没点保存 但是设置有自动保存 去哪找? ueditor初始化编辑器的内容怎么做 尼龙卷发夹怎么用 卷发棒的使用方法,卷发棒如何使用,卷发棒如何卷发 卷发夹的用法 为什么榴莲那么贵呢? 为什么榴莲这么贵啊 为什么榴莲这么贵 「古风手绘」空山不见人,唯闻草木声! 画古风漫画(手绘)用什么笔好,我是初学者,不要太好的,纯属练手用。 古风彩铅莲叶画教程 求涨幅前30名,量比前30名的条件选股公式.,我想在交易的时间内选出涨幅与量比同时出现的股票,谢谢 平面设计电脑配置cpu选至强还是酷睿?显卡选N卡还是专业的图形卡? 至强系列和酷睿系列我还是没弄懂,哪个更加好用 ps.3dmax等平面设计软件用志强cpu跟酷睿哪个好 英特尔酷睿和至强有什么主要区别? 浦发信用卡最大多大额度 android 怎么实现像微信一样,点击是拍照,长按是摄像的功能啊?求大神帮忙。 关干写家乡的甘蔗林的作文300字 oracle 行求和问题 为了好吃的,你都做过哪些惊人的事情? 临时工可以申请劳动仲裁吗 临时工受伤了,公司不管怎么办? 临时工没有签合同能找劳动仲裁吗 做临时工老板不给钱怎么办 临时工拖欠工资不给,没签合同怎么办? 工地上36伏的usb充电插座一通一断为什么? 工地上只提供36伏电,并且是usb的插座,如何给笔记本充电啊。急急急 工地上36伏的usb充电插座怎么连接三十六伏电褥子? 我们这边工地是36伏usb插座,给华为手机充电会影响手机电池寿命么? I地用36ⅴ转5ⅴusb插座与家用220Ⅴ转5Vusb插座有什么区? 手机充电用的USB插座有220伏和36伏之分吗