1
你曾经在做过什么,找到一个更简单的方法来完成这个项目,但仍然想要第一种工作方式?PLSQL中循环
这就是我现在所处的位置。我想计算最近一个数字和前面的数字不相等的列中的实例数。我决定用一段时间来做这个。
例如,
4
3
2
1
1
1
0
0
0
将在三个间隔返回3,如图4个减少到1。
4
4
3
2
1
0
0
将返回0,因为4在最近的时间间隔中不减少。
我已经写
declare
cursor curr
is
select (YTDOVERDRAFTS - Previous_YTDOVERDRAFTS) colum
from (select LAG(YTDOVERDRAFTS,1,0) OVER (ORDER BY EFFDATE asc) As Previous_YTDOVERDRAFTS,
YTDOVERDRAFTS
from WH_ACCTDEPOSIT
where ACCTNBR = xxxxxxxxx
order by effdate desc);
Counter BINARY_INTEGER :=0;
readcurr curr%ROWTYPE;
status INTEGER;
begin
open curr;
fetch curr into readcurr;
while readcurr.colum > 0
loop
Counter := Counter + 1;
dbms_output.put_line(Counter);
dbms_output.get_line(Counter, status);
end loop;
close curr;
end;
它运行,但不给输出它应该。我在做什么dbms_output语句错了?
你不应该被重新获取'curr'内循环? – sstan
为什么?一旦数据在光标中,为什么我需要重新读取它? – joel
您的查询不会返回多行吗?你需要为每一行“提取”,不是吗? – sstan