各位我有一个查询请大家帮忙看看我写了个查询一直都不能达到我要的效果select rnumber,min(stime) as a,min(etime) as b,destine,inn
 from t_openroom where (destine='1' or inn='1')
 and etime>=getdate() group by rnumber,destine,inn结果是:
rnumber            a                       b                        destiine   inn
3001     2009-10-27 10:24:00.000      2009-10-28 12:00:00.000         1         0
3001     2009-11-01 10:30:00.000      2009-11-06 20:00:00.000         1         1
3003     2009-10-15 18:00:00.000      2009-11-06 20:00:00.000         1         1
3004     2009-10-13 18:00:00.000      2009-10-31 12:00:00.000         1         1我想查出房号唯一的记录,就是将有重复的房号剔除掉,如:剔除掉房号3001的记录,只留一条,条件就是
a 和 b  列的时间是里面最早的,不过这些时间只要a值是最早的,它对应的b肯定也是里面最早的时间,但问题是
我要怎样把destine和inn 这两个也相应的选出来,像上面的话老是出了两条数据,不将destine,inn分组,数据确实出了
但我必须要房号所对应的destine和inn值,很急,很烦!麻烦各位了!

解决方案 »

  1.   

    select 
      t_openroom.rnumber,
      t_openroom.stime,
      t_openroom.etime,
      t_openroom.destine,
      t_openroom.inn
    from t_openroom 
      left join (
        select 
          rnumber,
          min(stime) as stime
        from t_openroom
        group by rnumber
      ) list 
        on list.rnumber = t_openroom.rnumber and list.stime = t_openroom.stime
    where (t_openroom.destine='1' or t_openroom.inn='1') 
      and t_openroom.etime>=getdate()