select * from bond as A 
  where changedate = 
   (select max(changedate) from bond where DealMarket = A.DealMarket and DealCode = A.DealCode and ChangeDate <= @ChangeDate)

解决方案 »

  1.   

    to tj_dns:
    请问DealMarket = A.DealMarket and DealCode = A.DealCode 的作用是什麽???谢谢!
      

  2.   

    select DealMarket,distinct DealCode,ChangeDatefrom bond  where changedate <= '2003-05-20 '
      

  3.   

    select * from bond as tem where  ChangeDate=(select max(changedate) from bond where dealcode=tem.dealcode
    and and ChangeDate <= '2003-05-20')
      

  4.   

    select * from bond as tem where  ChangeDate=(select max(changedate) from bond where dealcode=tem.dealcode and ChangeDate <= '2003-05-20')
    dealcode=tem.dealcode
    的作用是限定自查询里的dealcode等于外面的dealcode,在这个结果范围内求最大的