关于group by的一段SQl语句——Oracle

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 )



原文地址:https://www.cnblogs.com/hqbhonker/p/3386467.html