У меня есть следующая функция, которая запускается для каждой строки при генерации данных. Если я запускаю функцию для отдельной записи, она работает, но выдает ошибку в процессе компиляции, поэтому должно быть несколько строк, которые нарушают ее, но я не вижу, что это может быть ... Что-то не так с синтаксисом или чем-то я не думаю о здесь? Любая помощь или советы приветствуются
DROP FUNCTION IF EXISTS xx__calc_date;;
CREATE FUNCTION xx_calc_date(date INT, id INT, esId INT)
RETURNS DATE
DETERMINISTIC
BEGIN
IF date IS NULL OR date = 0 THEN
RETURN NULL;
ELSE -- this is where the error lies
IF(SELECT COUNT(b.TimeSort) FROM Booking b
WHERE b.BookingId IN (SELECT DISTINCT e.BookingId
FROM xx.Events e
WHERE e.id = id AND e.esId = esId)
AND TimeSort < 86400) > 0
THEN
RETURN STR_TO_DATE(date, '%Y%m%d');
ELSE
RETURN DATE_ADD(date, INTERVAL 1 DAY);
END IF;
END IF;
END;;