select a.aa,a.bb,a.cc,c.gg,d.hh
from
a join b on a.id = b.Aid
left join c on b.id = c.Bid
left join d on b.id = d.Bid

解决方案 »

  1.   

    select max(A.aa),max(A.bb),max(A.cc),max(C.gg),max(D.hh) from A join B on A.id=B.Aid
                 join C on C.Bid=B.id
                 join D on D.Bid=B.id 
    group by A.id你说的有些含糊,需要说的再清楚一点。
      

  2.   

    哦,刚才写错了一点select max(A.aa),max(A.bb),max(A.cc),max(C.gg),max(D.hh) from A join B on A.id=B.Aid
                 left join C on C.Bid=B.id
                 left join D on D.Bid=B.id 
    group by A.id你说的有些含糊,需要说的再清楚一点。
      

  3.   

    to cloudchen(陈系上.net)
    不对啊,
    c.gg中要选择最大时间的那个
    g.hh中要选择最小的那个时间
      

  4.   

    建立的视图A表的id作为key.
    现在假设取A=‘1’在B表中Aid='1'时B的id有'1','2','3'
    在C表中查询Bid为'1','2','3'时,ff为最大时间的那条记录,取出gg.
    在D表中查询Bid为'1','2','3'时,取出最小的时间的那个hh.
    这样说可以了吗?
      

  5.   

    select A.*,(select top 1 gg from C where cc.Bid=bid and cc.ff=ff ) gg,dd.hh from A left join B on A.id=B.Aid left join (select Bid,min(hh) hh from D group by Bid) dd on B.id=dd.Bid left join (select Bid,max(ff) ff from C group by Bid ) cc on B.id=cc.Bid
      

  6.   

    TO  poka(poka) 
    我试过了,建立的视图会有很多重复的id
    我要以A表的id作为这个视图的关键字
      

  7.   

    哦,是以A表的aa字段作为关键字,
    其实,字段aa的值在A表中也是唯一的