我希望用一条指令完成如下功能数据库中,我希望按照以下逻辑更新1条数据数据字段A:是字符串类型
数据字段B:是时间类型我希望将A等于leo的数据里面B最小的一个(时间最早)的时间更新为当前时间重点是A等于leo的数据有好几个,但我只要更新时间最老的一个,模拟语法如下,我不会写Where后面如何判断哪个B是最老的sql="UPDATE machines SET B='"&now&"' where A='leo'" and B是最老的一个请各位指点,在线等

解决方案 »

  1.   

    try:
    sql="Update machines Set B=GetDate() Where A='leo' And B=(Select Min(B) From machines Where  A='leo')"
      

  2.   

    补充一下,我操作的是MDB数据库,用ASP
      

  3.   

    paoluo 这个名字好熟悉,呵呵你的方法应该是可行的,不过我是希望只对数据库做一次操作。按照你的办法,实际上是做了2次操作。有没有其他办法呢?
      

  4.   

    UPDATE machines SET B=getdate() where b=(select min(b) from machines group by a where a='leo' ) and a='leo'
      

  5.   


    --Access的Jet-SQL:sql="UPDATE machines SET B=now() where A='leo' and B=dmin('B','machines',A='leo')"
      

  6.   

    Access使用的是Jet-SQL,而SQL Server使用的是Transact-SQL。两者使用方法区别很大。Access的Update语句中不允许这样用。--try
    --Access的Jet-SQL:sql="UPDATE machines SET B=now() where A='leo' and B=dmin('B','machines',A='leo')"
      

  7.   

    谢谢wangtiecheng,你的方法比较好,给分了