我的数据库里的记录是这样的CODE   NAME   PRICE   UNIT  MODIFYDATE MODIFYTIME  STARTDATE ENDDTAE
001001 YY       12.00  斤   2004-08-01  01:01      2004-08-10  2004-08-19
001001 YY      13.00   斤   2004-08-18  02:02      2004-08-20  2004-08-31
001002 TT      11.00   瓶   2004-08-02  01:02      2004-08-10  2004-08-19
001002 TT       15.00  瓶   2004-08-18  05:06      2004-08-20  2004-08-31
..
.
.
.
.
.
要取出MODIFYDATE最大的记录
当然如果有时间的话最好加上如果二个MODIFYDATE相等的情况下比较MODIFYTIME哪个大就取哪个记录
结果应该为CODE   NAME   PRICE   UNIT  MODIFYDATE MODIFYTIME  STARTDATE ENDDTAE 
001001 YY      13.00   斤   2004-08-18  02:02      2004-08-20  2004-08-31
001002 TT       15.00  瓶   2004-08-18  05:06      2004-08-20  2004-08-31
.
.
.

解决方案 »

  1.   

    select * from 表 order by MODIFYDATE ,MODIFYTIME
      

  2.   

    select * from 表 order by MODIFYDATE ,MODIFYTIME desc
      

  3.   

    如果是取一条最大的记录是
    select top 1 * from 表 order by MODIFYDATE ,MODIFYTIME
      

  4.   

    错了,不好意思,上面是最小的
    如果是取一条最大的记录是
    select top 1 * from 表 order by MODIFYDATE ,MODIFYTIME desc 
      

  5.   

    不对,这样只找到最后一条记录,而不是找出像我那样的结果
    你的结果为ID  NAME
    367  MMM ....
    只有一条记录高手在哪
      

  6.   

    select * from 表 max(MODIFYDATE) Order by MODIFYDATE ,MODIFYTIME應該可以吧,我沒有試過,自己試下!
      

  7.   

    mistake:
         select * from 表 MODIFYDATE=MAX(MODIFYDATE) order by modifytime
      

  8.   

    select top 1 * from 表 order by MODIFYDATE ,MODIFYTIME desc
      

  9.   

    select modifydtate,price,name,code from price a where
    modifydate=(select max(modifydtate) from price where code=a.code)
      

  10.   

    select * from 表 order by MODIFYDATE ,MODIFYTIME desc where MODIFYDATE in (select max(MODIFYDATE ) from 表)
      

  11.   

    SELECT Code,[Name],Price,Unit,Modifydate,Modifytime,Startdate,Enddate FROM (select * from 表 ORDER BY Modifydate,Modifytime DESC) GROUP BY [Name];
      

  12.   

    OF123
    错误:
    除非同时指定了TOP否则ORDER BY 子句在视图里查询无效
      

  13.   

    gzhiceberg(天晓得) 
    where附近有语法错误
      

  14.   

    select CODE,NAME,PRICE,UNIT,max(MODIFYDATE),max(MODIFYTIME),STARTDATE,ENDDTAE From 表
    group by CODE,NAME,PRICE,UNIT,STARTDATE,ENDDTAE
    order by max(MODIFYDATE),max(MODIFYTIME)
      

  15.   

    select * from 表 order by MODIFYDATE ,MODIFYTIME desc where MODIFYDATE in (select top 1 * from 表 order by MODIFYDATE ,MODIFYTIME desc)
      

  16.   

    要取出MODIFYDATE最大的记录
    当然如果有时间的话最好加上如果二个MODIFYDATE相等的情况下比较MODIFYTIME哪个大就取哪个记录
    结果应该为CODE   NAME   PRICE   UNIT  MODIFYDATE MODIFYTIME  STARTDATE ENDDTAE 
    001001 YY      13.00   斤   2004-08-18  02:02      2004-08-20  2004-08-31
    001002 TT       15.00  瓶   2004-08-18  05:06      2004-08-20  2004-08-31
    到底是取MODIFYDATE最大还是MODIFYDATE+MODIFYTIME最大?
    如果是MODIFYDATE最大可能有多条,而MODIFYDATE+MODIFYTIME最大只能有一条
      

  17.   

    select * from 表 order by MODIFYDATE ,MODIFYTIME desc where MODIFYDATE in (select top 1 MODIFYDATE from 表 order by MODIFYDATE ,MODIFYTIME desc)
      

  18.   

    yonghengdizhen(等季节一过,繁花就凋落')
    我又试了下,你的可以了,不过我还想再麻烦下你
    我想在相同的MODIFYDATE(因为可能查出来的最大的MODIFYDATE是相同的)下通过MODIFYTIME来比较而得出唯一的一条记录
    还请多指点,一定再加分!
      

  19.   

    取MODIFYDATE最大:
    select * from 表 where MODIFYDATE = (select max(MODIFYDATE) from 表)
    取MODIFYDATE+MODIFYTIME最大:
    select * from 表 
    where MODIFYDATE = (select max(MODIFYDATE) from 表) 
          and MODIFYTIME=(select max(MODIFYTIME) from 表 
                          where MODIFYDATE = (select max(MODIFYDATE) from 表))
      

  20.   

    NO.1问题
    select * from 表 order by MODIFYDATE ,MODIFYTIME desc where MODIFYDATE in (select top 1 MODIFYDATE from 表 order by MODIFYDATE ,MODIFYTIME desc)
    No.2问题
    select top 1 * from 表 order by MODIFYDATE ,MODIFYTIME desc 
      

  21.   

    cnwgy(wgy) 
    好的,我试下
    谢谢大家这么热情
      

  22.   

    上面的SQL语句都有问题,看我的吧:
    select * from 表 where MODIFYDATE in (select max(MODIFYDATE) from 表) and MODIFYTIME in(select max(MODIFYTIME) from 表 where MODIFYDATE in (select max(MODIFYDATE) from 表) )
      

  23.   

    其实建议你:
    MODIFYDATE MODIFYTIME  两个字段可以用一个字段
      

  24.   

    cnwgy(wgy) 
    你的有点问题的,没有显示出最大的来
      

  25.   

    不好意思,我这里先只是想看看用MODIFYDATE来判断下,看看程序如何写法
    真的要作的话就要同时判断了
    首先判断MODIFYDATE,如果相等则判断MODIFYTIME
    acunchen(acunchen) 
    我试试你的啊
      

  26.   

    gzhiceberg(天晓得) (
    where附近有语法错误!
      

  27.   

    TableA是你的表名select CODE,NAME,(select PRICE from TableA where MODIFYDATE = a.MODIFYDATE and MODIFYTIME =a.MODIFYTIME),(select UNIT from TableA where MODIFYDATE = a.MODIFYDATE and MODIFYTIME =a.MODIFYTIME),max(MODIFYDATE),max(MODIFYTIME),
    (select STARTDATE from TableA where MODIFYDATE = a.MODIFYDATE and MODIFYTIME  =a.MODIFYTIME),(select ENDDATE from TableA where MODIFYDATE = a.MODIFYDATE and MODIFYTIME =a.MODIFYTIME) from TableA a
    group by CODE,NAME
      

  28.   

    sorry 
    mistake:
    select * from 表 where MODIFYDATE=MAX(MODIFYDATE) Order by MODIFYTIME
    這樣可以嗎?
      

  29.   

    to楼上
    聚合函数只能用在having子句中
      

  30.   

    haipingma(今天你过得快乐吗?) 
    错误:
    查询中不包含作为合计函数一部分的特定表达式‘MODIFYDATE’
      

  31.   

    acunchen(acunchen) 
    用你的语句查询连一个结果也没有
      

  32.   

    select * from abcd where modifydate in (select max(modifydate) from abcd )
    肯定没有问题,全部数据库通用
      

  33.   

    試試看這個,如果要取出前面n條的話,可以在將select * 改為select top n *,其中n為你要顯示的記錄數。前題MODIFYDATE是日期型,MODIFYTIME是字符型,如果都是日期型的話,可以使用(order by convert(char,MODIFYDATE,102)+convert(char,MODIFYTIME,102) DESC)select * from TableName order by convert(char,MODIFYDATE,102)+MODIFYTIME DESC
      

  34.   

    select * from test t inner join 
    (select code,max(modifydate) as modifydate,max(modifytime)as modifytime  from test group by code)tt
    on t.code=tt.code and t.modifydate=tt.modifydate and t.modifytime=tt.modifytime
    可以使用子查询方式
      

  35.   

    select * from abcd where modifydate in (select max(modifydate) from abcd )
    如果需要在选择,以此类推即可,快给我加分呀,谢谢。^_^
      

  36.   

    小工作了一下,终于完成了
    是融合了 yonghengdizhen(等季节一过,繁花就凋落') 和GUNSROSERS()的语句
    在这里要感谢你们了
    开始结分 
    yonghengdizhen(等季节一过,繁花就凋落')你在另一处我的问题那会有分的,这里我就不多给了,从多的。不好意思啊,不过还是你的功劳最大,让我想通了套用SQL,十分感谢呢!
      

  37.   

    现在的表如下
    表price:
    code  price modifydate midifytime startdate enddate
    001001 12    2004-07-08  01:01:01   2004-07-10 2004-07-21
    001001 15    2004-07-08  01:09:08   2004-07-10 2004-07-21
    001001 13    2004-07-18  19:15:01   2004-07-22 2004-07-31001002 10    2004-07-08  01:01:01   2004-07-10 2004-07-21
    001002 18    2004-07-08  01:09:08    2004-07-10 2004-07-21
    001002 14    2004-07-18  19:15:01    2004-07-22 2004-07-31
    .
    .
    .
    .
    .
    表goods:(code 和name是唯一的)
    code  unit name
    001001 斤   mm
    001002 斤   yy
    001003 瓶   dd
    .
    .
    .
    .我现在需要显示出来的结果为
    CODE   NAME   PRICE   UNIT  MODIFYDATE MODIFYTIME  STARTDATE ENDDTAE
    001001 mm      13.00   斤   2004-07-18  19:15:01     2004-07-22  2004-07-31
    001002 yy      14.00   斤   2004-07-18  19:15:01     2004-07-23  2004-07-31
    ..
    .
    .
    我现在自编的语句如下
    SELECT a.code, Goods.name, Goods.unit, a.price, a.ModifyDate, a.ModifyTime, a.StartDate, 
          a.EndDate, a.code
    FROM Price a, Goods
    WHERE a.code = Goods.code AND (a.ModifyDate =
              (SELECT MAX(modifydate)
             FROM price
             WHERE code = a.code)) AND (a.ModifyTime =
              (SELECT MAX(MODIFYTIME)
             FROM price
             WHERE code = a.code)) AND (a.ModifyDate =
              (SELECT MAX(MODIFYDATE)
             FROM price
             WHERE code = a.code))
    ORDER BY a.code, Goods.name, Goods.unit, a.price运行显示正确的,但我改动后还是有点错(在日期相同的情况下能选出时间最大的那条记录,但当日期不同,而且时间不同时,就不对了)
    不请大家指点下