2016-06-07 77 views
0

我正試圖在MySQL Workbench中創建一個存儲過程。 我需要檢查,如果某個標誌被設置爲1。如果標誌等於1,則通過FollowupDate搜索使用別的QuoteDate在SQL存儲過程中使用兩個IF THEN

IF(qFollowup = 1) THEN 
     IF(pFromFollowupDate != '') THEN 
     BEGIN 
     SET @Main = CONCAT(@Main, ' AND DATE(q.FollowupDate) >= \'',pFromFollowupDate,'\' '); 
     END; 
ELSE 
IF(pFromDate != '') THEN 
BEGIN 
    SET @Main = CONCAT(@Main, ' AND DATE(q.QuoteDate) >= \'',pFromDate,'\' '); 
END; 
END IF; 
END IF; 

當我嘗試運用它說有語法錯誤的變化。

+0

能否請你告訴我們的錯誤? – sagi

+0

@sagi錯誤只是一個MySQL工作臺彈出說對象的DDL語句包含語法錯誤。 – user123456789

+0

@RyanVincent每次結束後我都不需要';'嗎? – user123456789

回答

0

嘗試:

DELIMITER // 

CREATE PROCEDURE `sp_name`() 
BEGIN 
    IF qFollowup = 1 THEN 
    IF pFromFollowupDate != '' THEN 
     SET @Main = CONCAT(@Main, ' AND DATE(q.FollowupDate) >= \'',pFromFollowupDate,'\' '); 
    ELSE 
     IF pFromDate != '' THEN 
     SET @Main = CONCAT(@Main, ' AND DATE(q.QuoteDate) >= \'',pFromDate,'\' '); 
     END IF; 
    END IF; 
    END IF; 
END// 

DELIMITER ;