select cc.fformulacode, cc.rangedate, dd.fpervalue
from (select n1.fformulacode, max(n1.frangedate) as rangedate
from table1 n1
where n1.frangedate <= to_date('2012-10-17', 'yyyy-MM-dd')
group by n1.fformulacode) cc
left join table1 dd
on cc.fformulacode = dd.fformulacode
and cc.rangedate = dd.frangedate
tb_001_Para_Performula_Rela 建表语句如下:(应该考虑主键)
1 create table Table1
2 (
3 FFORMULACODE VARCHAR2(20) not null,
4 FRANGEDATE DATE not null,
5 FRANGEMONEY NUMBER(18,4) not null,
6 FPERTYPE NUMBER(1) not null,
7 FPERVALUE NUMBER(18,12) not null,
8 FFIXVALUE NUMBER(18,4) not null,
9 FLEASTVALUE NUMBER(18,4) not null,
10 FMAXVALUE NUMBER(18,4) default 0 not null,
11 FCHECKSTATE NUMBER(1) not null,
12 FCREATOR VARCHAR2(20) not null,
13 FCREATETIME VARCHAR2(20) not null,
14 FCHECKUSER VARCHAR2(20),
15 FCHECKTIME VARCHAR2(20)
16 )