补充: begin SELECT NVL(SUM(DI.DPI_AMT),0) INTO ln_dps_amt FROM PMS_DPS_ITM DI,PMS_DPS_HDR DH WHERE (DH.TCY_INT_KEY = ii_tcy_int_key) AND DH.DPS_NO = DI.DPS_NO AND DH.DPS_STATUS = 'NL' GROUP BY DH.TCY_INT_KEY ; exception exception when no_data_found then ln_dps_amt := 0; end;
begin
SELECT NVL(SUM(DI.DPI_AMT),0)
INTO ln_dps_amt
FROM PMS_DPS_ITM DI,PMS_DPS_HDR DH
WHERE (DH.TCY_INT_KEY = ii_tcy_int_key) AND
DH.DPS_NO = DI.DPS_NO
AND DH.DPS_STATUS = 'NL'
GROUP BY DH.TCY_INT_KEY ;
exception
exception when no_data_found then
ln_dps_amt := 0;
end;
我后面就要用
ln_dps_amt
来进行运算的.
应该不会的,因为你用了SUM(),如果没有记录,则ln_dps_amt 是NULL,你又用了NVL,所以
没有记录这个变量是0,楼上的,你作过测试吗?
SELECT SUM(decode(nvl(DI.DPI_AMT,0),0,0,DI.DPI_AMT))
into ...
ln_dps_amt 是个什么变量?分组统计后的结果可能有若干条,能存的下吗?