WITH t(amnt) AS(
SELECT -294000.00 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17084.24 FROM DUAL UNION ALL
SELECT 17674.51 FROM DUAL
)
select max(k3.irr3) KEEP (DENSE_RANK FIRST ORDER BY abs(sum(decode(s3.rn3,0,s3.amnt,s3.amnt/power((1+k3.IRR3/100),rn3))))) IRR3_
from (select IRR3 from (select (IRR2_-1/100)+(level-1)/10000 IRR3
from (select max(k2.irr2) KEEP (DENSE_RANK FIRST ORDER BY abs(sum(decode(s2.rn2,0,s2.amnt,s2.amnt/power((1+k2.IRR2/100),rn2))))) IRR2_
from (select IRR2 from (select (IRR_-1)+(level-1)/100 IRR2 from
(select max(k.irr) KEEP (DENSE_RANK FIRST ORDER BY abs(sum(decode(rn,0,amnt,amnt/power((1+k.IRR/100),rn))))) IRR_
from (select (level-1) IRR from dual connect by level <= 101) k, (select rownum-1 rn, amnt from t ) s group by k.irr)
connect by level <= 201) where IRR2 between 0 and 100) k2,
(select rownum-1 rn2, amnt from t ) s2 group by k2.irr2)
connect by level <= 201) where IRR3 between 0 and 100) k3,
(select rownum-1 rn3, amnt from t ) s3 group by k3.irr3