select * from table where name = '张三' and date_1 = (
select min(diff(date_1, 2002-01-01)) from table where name = '张三')即可,不知你的什么数据库, 但每个数据库中都有个计算日期差的函数

解决方案 »

  1.   

    lzp_lrp(lzp) 
    你这种方法我试过啊,子查询只能返回一条记录,光光找某一个人可以的
    我要找好多个人,但是每个人就业情况只返回开始时间最近的一条记录!
    能不能先把每个人的按分组把就业情况的开始时间最近的记录给遍历出来!
    然后在遍历出来的表中,再根据不同条件进行查询!语句该怎么写
    我用的是ACCESS2000
      

  2.   

    select *
    from 就业记录表,人员基本信息表,单位表
    where (就业记录表.人员号=人员基本信息表.人员号 and 就业记录表.单位号=单位表.单位号 and  姓名 = ''and  身份证号='' and 单位名称='') and 开始时间 in (select Max(开始时间) 
                       from 就业记录表,人员基本信息表,单位表
                       where 就业记录表.人员号=人员基本信息表.人员号 and 就业记录表.单位号=单位表.单位号 and  姓名 = ''and  身份证号='' and 单位名称='')