这个业务太深了,知道公式用sql应该很简单。。不想学这个公式。。

解决方案 »

  1.   

    计算规则:case  到期日-起息日 a
    when    a/12<3  then rate = 活期利率
    when   a1/2>3 and a/12<6 then  3个月内 rate=3个月定期*0.6 ,3个月外 rate = 活期利率
    when    a/12>6 and a/12<12 then 6个月内 rate=定期利率*0.6, 6个月外 rate = 活期利率
    when  a/12>12 and a/12<24 then 1年内 rate = 定期利率*0.6 ,1年外 rate =活期利率
    when a/12>24  and a<36 then 2年内 rate = 定期利率*0.6,2年外 rate= 活期利率
    when a/12>36 and a<60 then 3年内 rate = 定期利率*0.6, 3年外 rate = 活期利率
    when a/12>60 then  5年内 rate = 定期利率*0.6, 5年外 rate =活期利率。
      

  2.   

    想帮你,可是真心有点乱。。
    首先你那个公司完全可以通过case when完成。
    第二,如果想查另一个表去利率可以根据条件进行子查询。。
      

  3.   

    给你一个思路,就不都写出来了哈。。WITH test AS
    (SELECT sysdate sdate,sysdate-100 edate FROM dual),
    test2 AS
    (SELECT 0.3 利率,1 利率类型 FROM dual UNION ALL
    SELECT 0.15 ,2  FROM dual)
    SELECT (CASE
             WHEN K < 3 THEN
              (SELECT 利率 FROM test2 WHERE 利率类型=2)
             WHEN K > 3 AND K < 6 THEN
              2
             WHEN K > 6 AND K < 12 THEN
              3
           END)
      FROM (SELECT FLOOR(SDATE - EDATE) / 30 / 12 K FROM TEST)
      

  4.   

    这句话还是没明白,举个带数据的例子。。
    如果想把两个利率拼接起来存入另一个表中,使用行转列函数WMSYS.WM_CONCAT就可以了