Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Помогите переделать запрос  [new]
Бакыт
Member

Откуда: Кыргызстан
Сообщений: 753
Здравствуйте, всем помогите переделать запрос
есть функция который вычисляет Эффективную процентную ставку только при сравнении с экселем дает чуть не точность
проблема из за цифр после запятой сейчас запрос дает 4 знака после запятой 2.8613 хотелось бы как минимум 6 знаков после запятой ,если больше то, еще лучше
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
9 дек 18, 10:38    [21758338]     Ответить | Цитировать Сообщить модератору
 Re: Помогите переделать запрос  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Бакыт,

Зачем дублировать темы? 21756994
10 дек 18, 09:29    [21758799]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить