现在有一个sqlserver 问题,内容是这样的:
表wlmx(物流明细),其中有一个字段rq(日期),现在如何检索出每天的最早日期与最迟日期的明细帐;
如表中有这样的明细记录
  rq                        pm
  2002-08-07-08:23:23       xxx
  2002-08-07-09:56:27       xxx
  2002-08-07-15:54:24       xxx
  2002-08-09-06:56:24       xxx
  2002-08-09-07:51:24       xxx
  2002-08-09-08:23:24       xxx
 怎样得出如下的形式: 
     zzrq(每天最早日期)        zcrq(每天最迟日期)       pm
  2002-08-07-08:23:23         2002-08-07-15:54:24       xxx
  2002-08-09-06:56:24         2002-08-09-08:23:24       xxx
  ...                         ...                       ...
请问这样的sql语句如何写?

解决方案 »

  1.   

    TDateTime类型可以直接用<和>号比较两个日期的大小,如:
    a:TDateTime ;
    b:TDateTime;
    begin
      if a<b
      then begin
      end ;
    end;
      

  2.   

    var
      maxdate,mindate:Tdatetime;
    begin
      adoquery1.clear;
      adoquery1.sql.clear;
      adoquery1.sql.add('select max(rq) maxrq from wlmx;');
      open;
      maxdate:= adoquery1.fieldbyname(maxrq).asdatetime;
      {...}
      {最小的日期用的是min(rq)函数,我就不多写了}
      

  3.   

    select min(rq),max(rq),pm from wlmx
    group by rq
      

  4.   

    用between
    rq1:
    日期2002-01-10 0:00:00
    rq2:
    2002-01-01  23:59:00
      

  5.   

    set @rq1='2002-01-10 0:00:00'
    set @rq2=2002-01-10 23:59:00'
    select * from tablename between @rq1 and @rq2
      

  6.   

    楼主的意思是要先按天分组,再得到每天最小时间和最大时间,所以SQL一定要用group by rq
      

  7.   

    只有 seland(谈攀峰) 大该知道我的意思,但分组前还须对rq进行处理,因为
    最后显示格式是 
    rq               rq_zz(最早时间)            rq_zc(最迟时间)
    2002-08-07       2002-08-07-08:23:23      2002-08-07-15:54:24       
    2002-08-09       2002-08-09-06:56:24      2002-08-09-08:23:24       
    XXX              XXX                      XXX
      

  8.   

    select round(convert(float,rq),0,1),max(rq),min(rq) from Datetest 
    group by round(convert(float,rq),0,1)关于:round(convert(float,rq),0,1)
       它首先家日期转换为实数,然后取掉小数部分,则剩下的只是日期而没时间了。
    假设你需要查询出日期:
       则:convert(datetime,round(convert(float,rq),0,1))
      

  9.   

    这个只需在分组统计时用min,及max函数即可,有问题请与我联系!
      

  10.   

    小弟呀,多学习呀!
    select min(rq),max(rq),pm from wlmx
    group by rq
     实践,实践,实践万岁!!!
      

  11.   


    select min(rq) zzrq, max(rq) zcrq ,pm from tablename group by pm;试试.