DELIMITER $$ $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`getTaxBases`() BEGIN /* Calcula y devuelve en nĂºmero de bases imponibles postivas y negativas * Requiere la tabla temporal tmp.ticketToInvoice(id) * * returns tmp.taxBases */ CREATE OR REPLACE TEMPORARY TABLE tmp.ticket (KEY (ticketFk)) ENGINE = MEMORY SELECT id ticketFk FROM tmp.ticketToInvoice; CALL ticket_getTax(NULL); DROP TEMPORARY TABLE IF EXISTS tmp.taxBases; CREATE TEMPORARY TABLE tmp.taxBases ENGINE = MEMORY SELECT SUM(CASE WHEN taxableBase > 0 THEN 1 ELSE 0 END) as positive, SUM(CASE WHEN taxableBase < 0 THEN 1 ELSE 0 END) as negative FROM( SELECT SUM(taxableBase) as taxableBase FROM tmp.ticketTax GROUP BY pgcFk ) t; END$$ DELIMITER ;