select * from table1 a , (select CompanyID as C_id, max(AddTime) as last_time from table1 group by CompanyID) b where a.CompanyId = b.C_id and a.AddTime = c.last_time

解决方案 »

  1.   

    select a.CompanyID,b.Price,b.AddTime
    from(
    select distinct CompanyID from table1 --所有的公司
    )a left join table1 b on a.CompanyID=b.CompanyID and b.AddTime=getdate()  --当前时间的报价
      

  2.   

    --把一楼的修改一下
    select a.* from table1 a , (select id , max(AddTime) as last_time from table1 group by id) b where a.Id = b.id and a.AddTime = b.last_time
      

  3.   

    zjcxc(邹建) 老大,你的这个方法也不灵光呀
      

  4.   

    ID    CompanyID    Price    AddTime 
    1        1          1000      2004-10-23 10:10
    2        1          1040      2004-10-23 11:10
    3        1          1020      2004-10-23 14:10
    4        2          900       2004-10-23 12:00
    5        2          800       2004-10-23 16:10
    6        3          2000      2004-10-23 09:10
    7        3          2000      2004-10-23 15:10希望得到的数据是
    3        1          1020      2004-10-23 14:10
    5        2          800       2004-10-23 16:10
    7        3          2000      2004-10-23 15:10
      

  5.   

    select a.CompanyID,b.Price,b.AddTime
    from(
    select distinct CompanyID from table1 --所有的公司
    )a left join table1 b on a.CompanyID=b.CompanyID and DAY(b.AddTime)=DAY(getdate()) and b.AddTime=(
             select max(AddTime) as last_time from table1 c where  c.CompanyID =b.CompanyID )
      

  6.   

    select *
    from <your_table, sysname, t>
    where ID in
             (
             select max(ID)
             from <your_table, sysname, t>
             group by CompanyID
             )