写了个存储过程,找某个组织以及该组织的下级组织的所有人员

下面是数据库表结构
None.gif
/* Table: MY_ORG_LIST                                          */
None.gif create   table  MY_ORG_LIST (
None.gifCORG_ID              
varchar ( 36 )           not   null ,
None.gifCORG_NAME            
varchar ( 50 )           null ,
None.gifCREMARK              
varchar ( 1024 )         null ,
None.gifCSTATUS              
int                    null ,
None.gifCORG_TYPE            
int                    null ,
None.gif
constraint  PK_MY_ORG_LIST  primary   key   (CORG_ID)
None.gif)
None.gif
go
None.gif
/* Table: MY_ORG_USER                                          */
None.gif create   table  MY_ORG_USER (
None.gifCROW_ID              
varchar ( 36 )           not   null ,
None.gifCPARENT_ID           
varchar ( 36 )           not   null ,
None.gifCCHILD_ID            
varchar ( 36 )           not   null ,
None.gifCTYPE                
int                    null ,
None.gifCGRADE_ID            
varchar ( 36 )           null ,
None.gifCREF_KEY             
int                    null ,
None.gif
constraint  PK_MY_ORG_USER  primary   key   (CROW_ID)
None.gif)
None.gif
go
None.gif
None.gif
/* Index: IDX_ORG_USER_RELATION_UQ                              */
None.gif create     index  IDX_ORG_USER_RELATION_UQ  on  MY_ORG_USER (
None.gifCPARENT_ID,
None.gifCCHILD_ID
None.gif)
None.gif
go
None.gif
/* Table: MY_USER_LIST                                         */
None.gif create   table  MY_USER_LIST (
None.gifCUSER_ID             
varchar ( 36 )           not   null ,
None.gifCUSER_NAME           
varchar ( 20 )           null ,
None.gifCNAME                
varchar ( 20 )           null ,
None.gifCPASSWORD            
varchar ( 20 )           null ,
None.gifCPASS_STATUS         
int                    null ,
None.gifCUSER_GRADE          
int                    null ,
None.gifCSEX                 
varchar ( 4 )            null ,
None.gifCREMARK              
varchar ( 1024 )         null ,
None.gifCONGUARD             
int                    null ,
None.gifCSTATUS              
int                    null ,
None.gifCWORKFOLDER          
varchar ( 1024 )         null ,
None.gif
constraint  PK_MY_USER_LIST  primary   key   (CUSER_ID)
None.gif)
None.gif
go

下面是存储过程:
None.gif create    procedure  pro_comp_user(
None.gif@i_comp_id 
varchar ( 60 )
None.gif)
None.gif
None.gif
as
None.gif
-- 查找组织以及下级组织的所有人员 2004-07-15
None.gif
declare  @ORG_TABLE  table
None.gif(
None.gif    CORG_ID        
varchar ( 36 ),
None.gif    CLEVEL        
int
None.gif)
None.gif
None.gif
declare  @CLEVEL         int
None.gif
declare  @CPARENT_ID     varchar ( 36 )
None.gif
declare  @CCHILD_ID     varchar ( 36 )
None.gif
set  @CPARENT_ID  =  @i_comp_id
None.gif
set  @CLEVEL  =   1
None.gif
None.gif
insert   into  @ORG_TABLE
None.gif(CORG_ID,CLEVEL) 
values  (@CPARENT_ID,@CLEVEL)
None.gif
None.gifloops:
None.gif
None.gif
None.gif
begin
None.gif
None.gif
None.gif    
insert   into  @ORG_TABLE
None.gif    
select      CCHILD_ID     CORG_ID,
None.gif        @CLEVEL    
+   1
None.gif        
None.gif    
from     MY_ORG_USER
None.gif    
where     CPARENT_ID  in  
None.gif        (
select  CORG_ID  from  @ORG_TABLE  where  CLEVEL  =  @CLEVEL)     and
None.gif        CTYPE 
=   1
None.gif    
None.gif    
if  @@rowcount  >   0
None.gif    
begin
None.gif        
set  @CLEVEL  =  @CLEVEL  +   1
None.gif        
goto  loops
None.gif    
end
None.gif    
None.gif
end
None.gif
None.gif
begin
None.gif
select     c.CNAME        ,
None.gif    c.CUSER_NAME
None.gif    
-- d.CORG_ID    ,
None.gif
     -- d.CORG_NAME    
None.gif

None.gif
from     @ORG_TABLE a
None.gif    
inner   join  MY_ORG_USER b
None.gif        
on  a.CORG_ID  =  b.CPARENT_ID
None.gif    
inner   join  MY_USER_LIST c
None.gif        
on  b.CCHILD_ID  =  c.CUSER_ID
None.gif    
inner   join  MY_ORG_LIST d
None.gif        
on  a.CORG_ID  =  d.CORG_ID
None.gif
None.gif
where     b.CTYPE  =   0
None.gif
None.gif
-- order by CUSER_NAME
None.gif
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值