有一张表,里面有字段  
A B C   
---------------------
01 42F9A   
0101 E654B 01   
0102 EC7D5 01  
0103 CBC99 02
0104 C5480 01
0105 95EAC 01
02 73718
0201 F626F 01
0202 044FB 02
0203 EAD27 02
(注:0101为01的下级,0201为02的下级)
我想在这张表里统计出A列下的01和02的下级有多少,A列下的01和02下的C列中01有多少,02有多少我是要出四列数据,第一列出01和02,第二列出01和02的下级的统计数值,第三列出A列01和02下C列中01的统计数,第四列出A列01和02下C列中02的统计数
一 二 三 四
-------------------
01 5 4 1
02 3 1 2要出这样的
高手请帮忙看看,我对SQL语句写的比较少,原来都写些简单的 

解决方案 »

  1.   

    对了还有如果A列还有03值,03下只有一条记录也要显示出来
    例:
    A B C   
    ---------------------
    03 42F9A   
    0301 E654B 01   生成值为:一 二 三 四
    -------------------
    01 5 4 1
    02 3 1 2
    03 1 1 0
      

  2.   


    --你A列下的数据有多少中?固定吗?
    select a.id, a.cnt,b.cnt,c.cnt from (select substring(A,1,2) id, count(substring(A,1,2)) -1 cnt
    from tabName group by substring(A,1,2)) a,
    (select C id,count(C) cnt from tabName
    where A like '01%' and C <> '' group by C) b,
    (select C id,count(C) cnt from tabName
    where A like '02%' and C <> '' group by C) c
    where a.A = b.A and a.A = c.A
      

  3.   

    谢谢
    有很多数据的,都是分层次的,A列下我可以用left(t.A, 2)这样可以,只是关联别的几列数据的问题