一个表中有两列:介绍人和被介绍人(一个人可能是介绍人也可以是被介绍人),两列是传递关系,现在想用SQL语句实现:求出每个介绍人下枝共有多少人? 
请各位高手帮帮忙,谢谢!

解决方案 »

  1.   

    select 介绍人,count(*) from 表 group by 介绍人
      

  2.   

    传递关系就是树吧!
    用start with connect by来实现
      

  3.   

    那这个start with connect by 怎么实现?
    能不能给我写个完整点的程序?谢谢啦!!
      

  4.   

    表结构如下:
    SQL codeCREATE TABLE manager(EMPID VARCHAR2(4) PRIMARY KEY,
                         MANID VARCHAR2(4) NOT NULL)
    数据如下: 
    EMPID  MANID 
    001 001 
    002 001 
    003 003 
    004 003 
    005 002 
    其中EMPID为员工号,MANID为主管号,请问我怎么可以得到任一员工的所有主管, 
    如当EMPID= '005 '时,应该得到其主管为:002,001 
            EMPID= '004 '时,其主管为:003 
    当EMPID=MANID时默认为最高层,无主管
    从树枝往树根查(从下属查主管)
     SQL codeselect * from manager start with empid=005
     connect by prior manid = empid从主管往下查职员 
     
    SQL codeselect * from manager start with empid=1
     connect by prior empid = manid