有2张表
A表
编码   名称
11      11
12      12
13      13--------------------
B表
编码1    名称1   
11001      11001
11002       11002
11003      11003
12001      12001
13001      13001
13002      13002
13003      13003
13004      13004
如何得到
编码      个数
11          3
12          1
13          4

解决方案 »

  1.   

    select a.编码 , count(1) 个数 from a , b where a.编码 = left(b.编码,2) group by a.编码
      

  2.   

    create table A(编码 varchar(2) , 名称 varchar(2))
    insert into a values('11', '11')
    insert into a values('12', '12')
    insert into a values('13', '13')
    create table b(编码1 varchar(10) , 名称1 varchar(10))
    insert into b values('11001', '11001')
    insert into b values('11002', '11002')
    insert into b values('11003', '11003')
    insert into b values('12001', '12001')
    insert into b values('13001', '13001')
    insert into b values('13002', '13002')
    insert into b values('13003', '13003')
    insert into b values('13004', '13004')
    goselect a.编码 , count(1) 个数 from a , b where a.编码 = left(b.编码1,2) group by a.编码
    /*
    编码   个数          
    ---- ----------- 
    11   3
    12   1
    13   4(所影响的行数为 3 行)
    */select a.编码 , (select count(1) from b where a.编码 = left(b.编码1,2)) 个数 from a 
    /*
    编码   个数          
    ---- ----------- 
    11   3
    12   1
    13   4(所影响的行数为 3 行)
    */drop table a , b
      

  3.   

    select 编码,个数=(select count(1) from B where aa.编码=left(编码1,len(aa.编码))) from A aa
      

  4.   

    SELECT A.编码,COUNT(1) AS NUM 
    FROM A JOIN B ON A.编码=LEFT(B.编码1,2)
    GROUP BY A.编码
      

  5.   

    其实单靠表B就行:
    select left(编码1,2),count(*) from 表B group by left(编码1,2) 
      

  6.   

    SELECT A表.编码,COUNT(*) AS 个数 FROM B表 WHERE LEFT([B表].编码1,2)=A表.编码 AND LEFT([B表].名称1,2)=A表.名称
    GROUP BY A表.编码
      

  7.   

    SELECT LEFT(编码1,2),COUNT(*) FROM B GROUP BY LEFT(编码1,2)