LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]递归在MSSQL开发中的应用

admin
2020年3月3日 1:50 本文热度 2533
  在人力资源管理系统中,常常会有通过工号查找其所在部门主管的需求,但员工所在部门不一定有主管,可能要在上级才有,这时就需要用递归的方式将其主管找出来,MSSQL代码:
/*    
功能:取得指定部门代码的部门负责人    
创建人:baronyang    
创建时间:2008-12-23    
*/    
CREATE   FUNCTION [dbo].[Fn_GetDepManager]    
(@DepCode varchar(30))     
RETURNS varchar(30)    
as    
BEGIN        
  declare @PersonCode varchar(230),@ParentID int      
  IF Exists(select 1 from cs_department(nolock) where DepCode=@DepCode)      
  Begin      
   select @ParentID=[ParentID],@PersonCode=isnull(PersonCode,'''') from cs_department(nolock) where DepCode=@DepCode      
   IF Isnull(@PersonCode,'''')=''''     
   Begin      
     select @DepCode=DepCode from cs_department(nolock) where [ID]=@ParentID             
     set @PersonCode=dbo.Fn_GetDepManager(@DepCode)                
   End    
  End     
 RETURN @PersonCode      
END

还有部门的架构是多级时,需要将每一级的部门名称显示出来,也需要递归,mssql代码:
/*    
功能:取得指定部门代码的上级组织    
创建人:baronyang    
创建时间:2008-10-21    
*/    
Create  FUNCTION dbo.Fn_ShowDepTree    
(@DepCode varchar(20))     
RETURNS varchar(500)    
as    
BEGIN      
  declare @Department varchar(500),@DepName varchar(50),@ParentID int    
  select @DepName='''',@Department=''''    
  select @ParentID=[ParentID],@DepName=Department,@DepCode=DepCode from cs_department where DepCode=@DepCode    
  if @Department=''''    
    set @Department=@DepName    
  else    
    set @Department=@DepName+''/''+@Department    
  if (@ParentID>0)    
    begin    
       select @DepCode=DepCode from cs_department where [ID]=@ParentID      
       set @Department=dbo.Fn_ShowDepTree(@DepCode)+''/''+@Department    
    end    
RETURN @Department    
END

该文章在 2020/3/3 1:50:49 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved