table aa
(
  a_id int,
  a_b_code varchar(20),
  a_time data,
  a_memo varchar(100)
)table bb
(
  b_id int,
  b_code varchar(20),
  b_memo varchar(100)
)取数据:
当aa 表里的 a_b_code = bb表的b_code 时
取  a_time是时间最大的一条SQL语句杂写。。?

解决方案 »

  1.   


    select A.*,B.*
    from AA as A
        inner join BB AS B on A.a_b_code=B.b_code
        inner join (select a_b_code,max(a_time) as a_time from A group by a_b_code) C 
          on A.a_b_code=C.a_b_code  and A.a_time=C.a_time
      

  2.   

    如果在a_b_code 想同的时候 a_time也相同的 会有什么后果
      

  3.   

    select a_b_code,max(a_time) as a_time from A group by a_b_code这个子查询中,如果a_b_code相同,a_time也相同,会返回一条。但与AA关联时,会显示两条。所以,如果要确保显示一条,需要给AA表加一个唯一ID字段。
      

  4.   

    AA表里的唯一字段就是a_id啊,加了就可以了吗
      

  5.   

    如果a_b_code相同,a_time也相同,只显示一条?
      

  6.   


    --如果AA中存在a_b_code相同,a_time也相同的记录,只取一条select A.*,B.*
    from AA as A
        inner join BB AS B on A.a_b_code=B.b_code
    where A.a_id=(select top 1 a_id from AA where a_b_code=A.a_b_code order by a_time desc,a_id desc)