1.
select A.f1,A.f2,A.f3,A.f4,isnull(B.b3,'100%') b3,B.b4,B.b5
 from A left join B on A.f1=B.B1

解决方案 »

  1.   

    2.
    select top 1 * from B where b4<=getdate() order by b4 desc
      

  2.   

    试试看,这样不行
    select A.f1,A.f2,A.f3,A.f4,isnull(B.b3,'100%') b3,B.b4,B.b5
     from A left join B on A.f1=B.B1
    where b.b4 =(select min(b4) from B)
      

  3.   

    对不起,前一条发错了..select A.f1,A.f2,A.f3,A.f4,isnull(B.b3,'100%') b3,B.b4,B.b5
     from A left join B on A.f1=B.B1
    where b.b4 =(select max(b4) from B)
      

  4.   

    谢谢各位!
    1和2是同一个问题来的.因为A和B是连接后得到C的,如果在where里指定条件,是不是会丢失了记录呢?是不是应该在having子句里筛选b4的条件呢?