请解释此存储过程及其工作原理 [英] Please explain this stored procedure and how it works
本文介绍了请解释此存储过程及其工作原理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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屋!
查看全文