0
我創建的程序工作正常,但它永遠不會進入if塊。在if中,我將leave_Type與'Cl'比較。如何在IF條件中比較過程
CREATE DEFINER=`satish`@`%` PROCEDURE `p_Leave_Approval`(
IN uname varchar(45),
IN coment varchar(200),
IN approval varchar(1)
)
BEGIN
-- declare str varchar(2);
-- set str = 'CL';
SELECT Emp_ID INTO @empid
FROM employee
WHERE Emp_F_Name=uname;
UPDATE staff_leave_detail
SET Leave_Comment=coment
,Leave_Status=approval
WHERE [email protected]
AND Leave_Status='P';
SELECT Leave_Start_Date, Leave_End_Date INTO @sd, @ed
FROM staff_leave_detail
WHERE [email protected] AND Leave_Status='P';
SELECT DATEDIFF(@sd,@ed) AS 'd2 - d1' INTO @s;
SELECT Leave_Type INTO @lt
FROM staff_leave_detail
WHERE [email protected]
AND Leave_Status='P';
IF @lt = 'CL' THEN
UPDATE staff_leave
SET AP_CL = AP_CL - @s ,
AV_CL = AV_CL + @S
WHERE Emp_ID = @empid ;
END IF;
END
您還沒有宣佈'@ lt'或其他任何東西....你確定'@ lt'是一個字符串?請聲明你的變量。 – Namphibian
你確定'SELECT'是用來設置'@ lt'是否返回一行嗎? –
@lt存儲staff_leave_detail的值Leave_Type。並工作正常,如果我執行簡單的查詢: – Subodh