Ver originalDELIMITER $$ DROP FUNCTION IF EXISTS `basededatis`.`prueba2`$$ CREATE DEFINER=`root`@`localhost` FUNCTION `prueba2`(fecha date, actual date) RETURNS int(2)BEGIN declare trimestreactual int(1); declare mesfecha int(2); declare messig int(2); set trimestreactual = quarter(actual); set mesfecha = month(fecha); case mesfecha when 1 then case trimestreactual when 1 then set messig = 4; when 2 then set messig = 7; when 3 then set messig = 10; when 4 then set messig = 1; end case; when 2 then case trimestreactual when 1 then set messig = 5; when 2 then set messig = 8; when 3 then set messig = 11; when 4 then set messig = 2; end case; when 3 then case trimestreactual when 1 then set messig = 6; when 2 then set messig = 9; when 3 then set messig = 12; when 4 then set messig = 3; end case; when 4 then case trimestreactual when 1 then set messig = 1; when 2 then set messig = 4; when 3 then set messig = 7; when 4 then set messig = 10; end case; end case; return messig;END$$ DELIMITER ;