A表中d字段中出现的记录在B表中id号码为最大的记录,并且B表中字段c='y'(如果有多個d在b表中出現怎麼辦?需要分組嗎?)-->>
select max(b.id),b.staus from a,b x where a.d=b.d and b.c='y'
------------------
再根据筛选出来的(必定为单一记录)B表中status对应记录查询A表中ID号码对应的记录!
???
不理解。

解决方案 »

  1.   

    SELECT * FROM A WHERE A.ID=(SELECT MAX(B.ID) FROM A,B WHERE B.STATUS=A.ID(+) WHERE B.C='Y');
      

  2.   

    SELECT A.ID FROM A WHERE A.ID=(SELECT B.STATUS FROM A,B 
                                   WHERE A.D=B.ID 
                                   AND B.ID=MAX(B.ID) 
                                   AND B.C='Y');
      

  3.   

    select * from a where (c,id) in (select max(id),status from a,b where a.d=b.d and b.c='y' group by status)
      

  4.   

    select * from 表A aa,(
    SELECT * FROM 表B tem WHERE ID=(SELECT MAX(ID) FROM 表B WHERE d=tem.d WHERE C='Y')) bb
    where aa.id=bb.status
      

  5.   

    select * from A where A.d in (select max(B.d) from B where B.c='y')
      

  6.   

    create table a
    (
     id varchar2(4),
     status varchar2(2),
     c varchar2(2),
     d varchar2(4)
    )
    /
    create table b as
    select * from a;insert into a(id,status,c,d)
    values('11','2','19','48');
    insert into a(id,status,c,d)
    values('12','2','29','58');
    insert into a(id,status,c,d)
    values('13','2','39','68');insert into b(id,status,c,d)
    values('19','11','y','48');
    insert into b(id,status,c,d)
    values('29','11','n','48');
    insert into b(id,status,c,d)
    values('39','11','y','48');
    insert into b(id,status,c,d)
    values('119','12','y','58');
    insert into b(id,status,c,d)
    values('129','12','n','58');
    insert into b(id,status,c,d)
    values('139','12','y','58');
    建表并初始化成功!运行查询时不对呀,为什么?请DX解释一下:
    bzszp(SongZip)兄写的: SELECT * FROM A WHERE A.ID=(SELECT MAX(B.ID) FROM A,B WHERE B.STATUS=A.ID(+) WHERE B.C='Y');不能运行,提示 缺少右括号我也写了一个(初学,一看就知道很菜的:)):
    select a.id from a where a.id=(select b.status from b where c='y' and b.id=(select max(b.id) from b where b.d in (select a.d from a))); 
    在pl/sql里运行错误,但在sql*plus里正确?由结果为证哦,id=11