0
次のsql関数では、ネストされたif-elseステートメントを使用しようとしています。ネストされたif-elseステートメントのSQL構文エラー[mysql]
この関数は、ネストされた 'if'ステートメントを削除して正常に動作しています。しかし、追加すると、エラーが表示されます。
BEGIN
DECLARE daysEntitled DECIMAL(4,2);
DECLARE joinDate DATE;
DECLARE dayOfMonth INT(4);
SET joinDate = (SELECT join_date FROM users WHERE id = user);
SET daysEntitled = TIMESTAMPDIFF(MONTH, joinDate, currentDate);
IF YEAR(joinDate) = YEAR(currentDate) THEN
SET currentDate = DATE_FORMAT(currentDate,'%Y-12-31');
SET daysEntitled = TIMESTAMPDIFF(MONTH, joinDate, currentDate);
SET dayOfMonth = CAST(DAY(joinDate) AS UNSIGNED);
****** On adding this block ********
IF dayOfMonth <= 15 THEN
SET daysEntitled += 1.00;
ENDIF;
****** On adding this block ********
ELSEIF YEAR(joinDate) < YEAR(currentDate) THEN
SET daysEntitled = 8.00;
ELSEIF YEAR(joinDate) > YEAR(currentDate) THEN
SET daysEntitled = 12.00;
ELSE
SET daysEntitled = 4.00;
END IF;
RETURN daysEntitled;
END
コードが正常であるようです。私は間違ったことをうまくいかない。 何か助けていただければ幸いです。ありがとう。
MySQLは言った:私はこの問題は、あなたが変数のインクリメントしようとしている方法だと思います。#1064 - あなたのSQL構文でエラーが発生しています。右側の – Azima