select g,h,isnull(a.cnt,0) from tb left join (select a,count(*)cnt from ta group by a)a 
on tb.e=a.a

解决方案 »

  1.   

    declare @A  table(a int,    b int,    c int) 
    insert @a select 1 ,   2,    6 
    insert @a select 1 ,   2,    7 
    insert @a select 2,    5,    0 
    declare @B table(e int,    f int,    g varchar(10),    h  varchar(10))
    insert @b select 1,    2,    'n' ,   'm' 
    insert @b select 2,    5 ,   'x' ,   'z' 
    insert @b select 3,    7  ,  'l' ,   'k' 
    select b.g,b.h,isnull(a.cnt,0)c from @b b  left join (select a,count(*)cnt from @a group by a)a 
    on b.e=a.a
    /*g          h          c           
    ---------- ---------- ----------- 
    n          m          2
    x          z          1
    l          k          0
    */