errore stupido.
ho risolto, ELSEIF:
codice:
delimiter //
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_import_bolle_ft`(IN `nspe` INT, IN `numero` VARCHAR(20), IN `causale` SMALLINT(4), IN `magazzino` INT,
IN `nmat` INT, IN `qta` SMALLINT(6), IN `importo` DECIMAL(5,2), IN `data` DATE)
NO SQL
BEGIN
DECLARE affected_rows INT DEFAULT 0;
INSERT IGNORE INTO xxl_bolle VALUES(nmat, nspe, numero, causale, magazzino, qta, importo, data, NOW());
SET affected_rows = (SELECT ROW_COUNT());
IF affected_rows > 0 THEN
IF causale = 4020 OR causale = 4022 THEN
INSERT INTO magazzini_fatturazione VALUES(NULL, nmat, magazzino, qta, qta, NOW(), NOW())
ON DUPLICATE KEY UPDATE ftm_qta = (ftm_qta + qta),
ftm_qta_caricamento = (ftm_qta_caricamento + qta), ftm_modifica = NOW();
ELSEIF causale = 4025 OR causale = 4027 THEN
INSERT INTO magazzini_fatturazione VALUES(NULL, nmat, magazzino, qta, qta, NOW(), NOW())
ON DUPLICATE KEY UPDATE ftm_qta = (ftm_qta - qta), ftm_modifica = NOW();
END IF;
END IF;
END