求一条SQl语句????????
A                     B                  C 
 a001                              2006-1-1 
 a001            10            2006-2-1 
 a001            30            2006-3-1 
 a001            20            2006-4-1 
 b001                              2005-1-1 
 b001            30            2006-2-1 
 b001            25.5      2006-3-1    
 c001                              2007-3-1 
 c001            30            2006-5-1 
 c001            15            2007-2-1 
 c001            50            2007-1-1 
 --------------------------- 
 结果: 
 A                     B               C 
 a001            20            2006-4-1 
 b001            25.5      2006-3-1 
 c001            15            2007-2-1   
 取出C列中时间最大的并且B   不为空的记录(不能有A重复的记录)
------解决方案--------------------SQL>  select * from a_max;   
 A     B     C 
 ----- ----- ---------- 
 a001        20060101 
 a001  10    20060201 
 a001  30    20060301 
 a001  20    20060401 
 b001        20060101 
 b001  30    20060201 
 b001  25.5  20060301 
 c001        20060301 
 c001  30    20060501 
 c001  15    20070201 
 c001  50    20070101   
 已选择11行。   
 SQL>   select a.a,a.b,a.c from a_max a, 
   2   (select a,max(c) c_max from a_max group by a) b 
   3   where a.c=b.c_max and a.a=b.a 
   4   and a.b is not null 
   5   ;   
 A     B     C 
 ----- ----- ---------- 
 a001  20    20060401 
 b001  25.5  20060301 
 c001  15    20070201 
------解决方案--------------------create table test (a varchar2(10),b number,c  varchar2(12))   
 insert into test(a,c) values( 'a001 ', '2006-1-1 '); 
 insert into test values( 'a001 ',10, '2006-2-1 '); 
 insert into test values( 'a001 ',30, '2006-3-1 '); 
 insert into test values( 'a001 ',20, '2006-4-1 '); 
 insert into test(a,c) values( 'b001 ', '2005-1-1 '); 
 insert into test values( 'b001 ',30, '2006-2-1 '); 
 insert into test values( 'b001 ',25.5, '2006-3-1 '); 
 insert into test(a,c) values( 'c001 ', '2007-3-1 '); 
 insert into test values( 'c001 ',30, '2006-5-1 '); 
 insert into test values( 'c001 ',15, '2007-2-1 '); 
 insert into test values( 'c001 ',50, '2007-1-1 ');   
 select a.a, b,a.c from test, 
 (select a,max(c) c from test  
 where b is not null 
 group by a) a 
 where test.a = a.a and test.c = a.c