7.现有表A: ID   INT
CODE VARCHAR2(10)
TIME DATE
MEMO VARCHAR2(100)
      表B: ID   INT
CODE VARCHAR2(10)
MEMO VARCHAR2(100)
  写一个sql语句,表A与表B通过CODE关联,关联上的记录中,同一CODE时只检索出TIME最大的记录
  也就是说,B通过CODE与表A关联时,只关联表A中同一CODE时TIME最大的记录
sql

解决方案 »

  1.   

    select A.* from A,B where A.Code=B.Code and  TIME in (select max(A.TIME) from A,B where A.code=b.code;
      

  2.   

    你这么写,当有多个相同CODE时,这个只能返回一条时间最大的记录。
      

  3.   


    select A.* from A,
    (select Code bcode,  max(TIME) maxTIME from A group by Code ) as tb
    where A.Code=tb.bcode and A.TIME=tb.maxTIME 
      

  4.   

    select * from A INNER JOIN B
    ON A.CODE=B.CODE
    WHERE NOT EXISTS(SELECT 1 FROM A WHERE A.CODE=CODE AND A.TIME<TIME)
      

  5.   

    SELECT A.* FROM A,B WHERE A.CODE=B.CODE AND A.TIME IN (SELECT MAX(A.TIME) FROM A,B WHERE A.CODE=B.CODE GROUP BY A.CODE);
    少了这个
      

  6.   

    select * from A a1 INNER JOIN B
     ON A1.CODE=B.CODE
     WHERE NOT EXISTS(SELECT 1 FROM A WHERE A1.CODE=CODE AND A1.TIME<TIME)