现数据库中存在如下情况
企业编码  税务登记证号 日期
000       00000000000  2010-08-08
000       00000000000  2010-09-09
001       00000000001  2010-08-08
001       00000000002  2010-09-09说明:库中的企业编码是唯一标识一个企业的,但是每个月的税务登记证号可能会有变化
目的:从上表中提取 企业编码 与 税务登记证号 对应的字典,税务登记证号要取最新更新的那个,
请问高手如何解决啊?急用啊!!求大家多多帮忙,感激不尽!!
注:数据量很大,查询速度比较慢

解决方案 »

  1.   

    select 企业编码 税务登记证号 max(日期) from 表 group by 企业编码 税务登记证号
      

  2.   

    首先谢谢zhuomingwang!
    不过这个方法不行,
    实际数据如下:
    序号      企业编码          税务登记证号                日期
    1 10401588 12010400000000001 2010-1-4
    2 10401588 12010400000000001 2010-2-1
    3 10401588 12010400000000001 2010-3-5
    4 10401588 12010400000000001 2010-4-6
    5 10401588 12010400000000001 2010-5-6
    6 10401588 12010400000000001 2010-6-1
    7 10401588 12010400000000001 2010-7-6
    8 10401588 12010400000000001 2010-8-5
    9 10401588 12010400000000000 2010-9-6用您的方法结果出来是这样的
    1 10401588 12010400000000000 2010-9-6
    2 10401588 12010400000000001 2010-8-5我只需要查出最新的
    1 10401588 12010400000000000 2010-9-6
    不需要
    2 10401588 12010400000000001 2010-8-5有什么解决方法吗?
    大家谁有好的方法不要吝啬啊,谢谢!
      

  3.   

    select a.* from table1 a,(select 企业编码,max(日期) 日期 from group by 企业编码) b where a.企业编码=b.企业编码 and a.日期=b.日期;试试看这样行不行
      

  4.   

    Select * from tablename where (企业编码,日期) in (
    Select 企业编码, max(日期) 日期 from table group by 企业编码
    )
      

  5.   

    没测试select * from table m where not exists(select 1 from table n )
     where m.企业编码 = n.企业编码 and m.日期 <=n.日期) 
      

  6.   

    select 企业编码, 
        substr( max( to_char(日期,'yyyymmdd') || 税务登记证号 ), 9, 100)  New税务登记证号
    from 表 
    group by 企业编码 
      

  7.   

    select * from tb a
    where not exists(select 1 from tb b 
    where a.企业编码=b.企业编码 and a.日期<b.日期)