此处的plsql中的新手..数据库低于oracle8。
具有此表格(下面的结构),其中包含会员的每月汇款。每个成员可以每月修改其汇款;自动将最新标记的(FlagInd)标记为'A';他们之前提交的“ I” ...每笔交易都会获得一个新交易编号(transNo)
会员编号
transNo号
汇款截止日期
DateFiled日期(实际报告日期)
RemittanceAmt号码
FlagInd varchar2(A或I)
报告格式应为:
MemberId Jan Feb Feb Apr .... Dec
创建了两(2)个独立的游标;第一个让特定会员汇款达特定年份的公司;第二个将其最新的每月汇款标记为“ A”。
以下我的一些代码;我正在使用utl工具将输出写入文件:
declare
cursor c1 is
select distinct memberId mId
from table1
where to_char(remittanceMo, 'yyyy' ) = '2018';
v_memberId c1%rowtype;
cursor c2 (i_memberId in number) is
select max(datefiled) dtfiled,
max(transno) transnum,
sum(nvl(remittanceamt, 0)) amt
from table1
where memberid = i_memberid
and flagInd ='A' ;
v_remit_mo1 c2%rowtype;
v_remit_mo2 c2%rowtype;
.
.
v_remit_mo12 c2%rowtype;
begin
for v_memberId in c1
loop
open c2 (v_memberId.mId);
fetch c2 into v_remit_mo1;
close c2;
and so on until the 12th month..
end loop;
end;
我的问题是,还检索了那些标记为“ I”的交易。我不知道为什么,当第二个游标说每月只应检索标记为“ A”的最新记录时。.请帮助。