表结构:
分项名称  完成时间   分项结果 
  A       2007-1-1     AAAAAA
  A       2007-1-2     BBBBBB
我想要得到下面的结果,要怎么写?
分项名称  完成时间   分项结果   最终结果
  A       2007-1-1     AAAAAA    BBBBBB
  A       2007-1-2     BBBBBB    BBBBBB

解决方案 »

  1.   

    Select
    A.*,
    (Select TOP 1 分项结果 From 表 Where 分项名称 = A.分项名称 Order By 完成时间 Desc) As 最终结果
    From
    表 A
      

  2.   

    select a.*,b.分项结果 最终结果
    from tb a
    inner join (select 分项名称,max(完成时间) mx from tb group by 分项名称) c
    on c.分项名称=a.分项名称
    inner join tb b
    on b.分项时间=mx and b.分项名称=c.分项名称
      

  3.   

    create table tb(
      分项名称 varchar(1),
      完成时间 datetime,
      分项结果 varchar(10)
    )
    insert tb
    select 'A','2007-01-01','AAAAAA' union all
    select 'A','2007-01-02','BBBBBB'select tmp.分项名称,convert(varchar(10),tmp.完成时间,120)as 完成时间,tmp.分项结果,
    (select top 1 分项结果  from tb  where 分项名称=tmp.分项名称 order by 完成时间 desc)as 最终结果
    from tb tmp--result:
    A 2007-01-01 AAAAAA BBBBBB
    A 2007-01-02 BBBBBB BBBBBB