请解释此存储过程及其工作原理 [英] Please explain this stored procedure and how it works

查看:118
本文介绍了请解释此存储过程及其工作原理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Create PROCEDURE  [dbo].[usp_zcCandidate_SELECT_By_Client_Status_PayRollType]       

(      

 @ClientID int = NULL,      

 @StatusID int = NULL,      

 @PayrollTypeID int = NULL ,  

 @LoggedInUserID UNIQUEIDENTIFIER      

)        

AS      

    

if (@ClientID = 0)    

set @ClientID = null    

    

if (isnull(@StatusID, -1) =-1 )    

BEGIN     

  SELECT  CandidateID, FirstName +' '+ LastName as CandidateName, DateCreate,         

    C.ClientID as ClientID, ClientName, C.StatusID, S.[Name] as Status, IsRehire        

  FROM zcCandidate C        

  LEFT JOIN zcCandidateStatus S ON C.StatusID = S.StatusID  

  INNER JOIN fn_GetAccessibleClientIDsByLoggedInUserID(@LoggedInUserID) AS AC ON C.ClientID = AC.ClientID    

  WHERE     

   (C.ClientID = ISNULL(@ClientID, C.ClientID))        

    AND ((C.StatusID = 1 OR C.StatusID = 8))    

    AND  IsPayrollee1099 & @PayrollTypeID > 0      

  ORDER BY DateCreate, LastName      

END     

 ELSE    

BEGIN    

 SELECT  CandidateID, FirstName +' '+ LastName as CandidateName, DateCreate,         

    C.ClientID as ClientID, ClientName, C.StatusID, S.[Name] as Status, IsRehire        

  FROM zcCandidate C        

  LEFT JOIN zcCandidateStatus S ON C.StatusID = S.StatusID  

  INNER JOIN fn_GetAccessibleClientIDsByLoggedInUserID(@LoggedInUserID) AS AC ON C.ClientID = AC.ClientID    

  WHERE     

   (C.ClientID = ISNULL(@ClientID, C.ClientID))        

    AND C.StatusID = @StatusID     

    AND  IsPayrollee1099 & @PayrollTypeID > 0      

  ORDER BY DateCreate, LastName     

END

推荐答案

它从zcCandidate和zcCandidateStatus返回详细信息。



如果@StatusID参数为空,则它运行SP的前半部分并返回StatusID为的所有记录1或8 ...



如果@StatusID参数不为空,则它基本上运行相同的查询但仅针对指定的状态。
It returns details from zcCandidate and zcCandidateStatus.

If the @StatusID parameter is blank, it runs the first half of the SP and returns all records with StatusID of 1 or 8...

If the @StatusID parameter not blank, it essentially runs the same query but only for a specified Status.


这篇关于请解释此存储过程及其工作原理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆