table1:                                                                                           
      a_id     a1     a2     a3 
        1       d       d       d
        2       e       e       e
        3       f        f        f

table2:
      b_id     a_id      b1      b2
        1         2          s        s
        2         2          c        c
        3         3          h        h
        4         3          n        n
        5         3          r         r

要达到的结果:
       a_id     a1     a2     a3    数量(别名)
        1         d       d       d       0
        2         e        e       e       2
        3         f         f        f       3

解决方法:

declare @b1 table(a_ID INT,a1 varchar(10),a2 varchar(10),a3 varchar(10))
insert into @b1
select 1,'d','d','d' union
select 2,'e','e','e' union
select 3, 'f','f','f'

declare @b2 table(b_ID INT,a_id int,b1 varchar(10),b2 varchar(10))
insert into @b2
select 1,'2','s','s' union
select 2,'2','c','c' union
select 3,'3','h','h' union
select 4,'3','n','n' union
select 5,'3','r','r'

 

select a.a_id,a.a1,a.a2,a.a3,数量=(select count(b.a_id) from @b2  b where a_id=a.a_id) from @b1 a


--测试结果:
  --     a_id     a1     a2     a3    数量
    --    1       d      d       d       0
      --  2       e       e       e       2
        --3       f        f        f       3

posted on 2005-10-01 19:20  秋日私语  阅读(707)  评论(0)    收藏  举报