DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`invoiceFromClient`( IN vMaxTicketDate datetime, IN vClientFk INT, IN vCompanyFk INT) BEGIN DECLARE vMinTicketDate DATE; SET vMinTicketDate = util.firstDayOfYear(vMaxTicketDate - INTERVAL 1 YEAR); SET vMaxTicketDate = util.dayend(vMaxTicketDate); DROP TEMPORARY TABLE IF EXISTS `tmp`.`ticketToInvoice`; CREATE TEMPORARY TABLE `tmp`.`ticketToInvoice` (PRIMARY KEY (`id`)) ENGINE = MEMORY SELECT id FROM ticket t WHERE t.clientFk = vClientFk AND t.refFk IS NULL AND t.companyFk = vCompanyFk AND t.shipped BETWEEN vMinTicketDate AND vMaxTicketDate; END$$ DELIMITER ;