表 字段 iNo(编号)    iLevel(等级)  iTime(时间)iNo    iLevel  iTime
1      1         2007-01-20
2      1         2007-06-11
1      2         2007-01-18
1      1         2007-01-05
2      2         2007-06-11
-----------------------------
1      1         2007-01-05
2      1         2007-06-11求安编号分组后取 等级最小 时间最早 的记录

解决方案 »

  1.   

    select iNo,min(iLevel),min(iTime) from tablename group by iNo
      

  2.   

    用分析函数:
    select * from 
    (select t.*,row_number() over (partition by iNo order by iLevel, iTime) r from xxxxxx t)
    where r=1
      

  3.   

    select iNo,min(iLevel),min(iTime) from tablename group by iNo
    这句话如果最小的ilevel和itime不在一行会出错
      

  4.   

    to bjt_(bjt) 
    我剛才建了個測試表試了一下
    ilevel和itime不在一行也不会出错的
      

  5.   

    to bjt_(bjt) 
    我剛才建了個測試表試了一下
    ilevel和itime不在一行也不会出错的===================================================bjt_(bjt) 的意思可能是说数据不一致,也就是说iLevel 和iTime 的记录不属于一个iNo.
    查出来的iLevel和iTime记录可能在其本列是最小的,但可能不是相对于同一个iNo。
      

  6.   

    這麼理解,bjt_(bjt)的方式是對的
      

  7.   

    同意bjt_(bjt) 的方法,学习。