DELIMITER $$ CREATE OR REPLACE FUNCTION vn.sale_hasComponentLack(vSelf INT) RETURNS tinyint(1) READS SQL DATA BEGIN /** * Comprueba si la lĂ­nea de sale tiene todos lo componentes obligatorios * * @return BOOL */ DECLARE vHasComponentLack TINYINT(1); WITH componentRequired AS( SELECT COUNT(*)total FROM component WHERE isRequired )SELECT SUM(IF(c.isRequired, TRUE, FALSE)) <> cr.total INTO vHasComponentLack FROM vn.sale s JOIN componentRequired cr LEFT JOIN vn.saleComponent sc ON sc.saleFk = s.id LEFT JOIN vn.component c ON c.id = sc.componentFk WHERE s.id = vSelf; RETURN vHasComponentLack; END$$ DELIMITER ;