我现在有3个表
user表                    dept表                        user_dept
id    name   depno        deptno  name     parentno     userid   depno  assign  accept  worked
1     员工1   2            1      总部门    1            1        2       20     99         100
2     员工2   2            2      部门1     1            1        2       20     
3     员工3   2            3      部门1-1组 2            1        2       20     99 
4     员工4   3            。                               2       20
                                                         2        2       20     99     现在有以上几个表,dept表是分级关系,部门下面还可以分团队,迭代形式,user_dept是任务表,如果有任务分配给某个人userid不为空, 初始任务都为20 ,当accept为空表示员工还没有接受执行任务,当员工接受任务accept为99,当员工完成任务worked为100,现在我的要求是要统计每一个员工(分配任务,接收任务, 完成任务)分别有多少,以及员工编号,姓名, 部门名等,小弟初识oracle,不知道怎么弄了,还请熟悉oracle的高手们指教。我的理解:给个depno为2可以查询部门下的所有员工
select * from user u, (select deptno, name where dept start with deptno=2 connect by prior deptno=parentno)t where u.depno = t.depno(+) 
一下不就不知道怎么弄了,晕啊

解决方案 »

  1.   

    没注意,我晕,重新弄了下表结构
    user表  
    id    name   depno
    1     员工1   2           
    2     员工2   2            
    3     员工3   2           
    4     员工4   3  
    dept表  
    deptno  name     parentno   
    1      总部门      1            
    2      部门1      1        
    3      部门1-1组   2         
    。  
    user_dept 
    userid   depno  assign  accept  worked 
    1        2       20     99         100 
    1        2       20  
    1        2       20     99 
             2       20 
    2        2       20     99 
                               
      

  2.   

    select a.userid 员工编号,max(b.name) 姓名,max(c.name) 部门名称,count(a.assign) 分配任务,count(a.accept) 接受任务,count(a.worked) 完成任务
    from user_dept a,use b,dept c
    where a.userid=b.id and a.depno=c.deptno
    group by a.userid
      

  3.   

    谢谢楼上的回答,不过好像你的sql不是我需要的~~