[英]What's wrong with my SQL code? Getting an error on last line
我正在嘗試創建一個MySQL過程來計算稅收。 但是它說我在第9行有一個涉及')'標記的錯誤。 知道如何解決嗎? 錯誤消息是:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT ((pSalary - taxExempt) * taxRate) INTO taxesDue; END' at line 27
我的代碼是:
DELIMITER //
CREATE PROCEDURE calc_state_tax(
IN pSalary DECIMAL(9,2),
IN pStateCode VARCHAR(2),
IN pStatus VARCHAR(6),
OUT taxesDue DECIMAL(9,2)
)
BEGIN
DECLARE taxRate DECIMAL(7,5);
DECLARE taxExempt DECIMAL(9,2);
SELECT
s1.taxRate,
s1.exemptperfiler
INTO taxRate,taxExempt
FROM statetax s1
WHERE s1.statecode = CONCAT("'",pStateCode ,"'")
AND s1.type = CONCAT("'",pStatus,"'")
AND s1.bracket = (
SELECT MAX( s2.bracket )
FROM statetax s2
WHERE s1.statecode = s2.statecode
AND s1.type = s2.type
AND s2.bracket < pSalary )
SELECT ((pSalary - taxExempt) * taxRate) INTO taxesDue;
END; //
DELIMITER;
如我的評論所述:
您在AND s2.bracket < pSalary )
之后缺少分號
我認為問題在於前一行缺少分號。 它應該看起來像這樣:
AND s2.bracket <pSalary);
看看是否有幫助。 干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.