Erro estranho trigger

Olá. Eu estou recebendo esta mensagem de erro quando um trigger que eu criei é ativado:

Aqui está o código CREATE:

CREATE DEFINER=`root`@`localhost` TRIGGER `calcula_lucro_lanche` BEFORE INSERT ON `lanches_vendidos` FOR EACH ROW BEGIN
UPDATE lanches SET lanches.lucro = ((SELECT SUM(ganho) FROM lanches_vendidos WHERE lanche=NEW.lanche) - 
(SELECT investimento FROM lanches WHERE nome=NEW.lanche)) WHERE nome=NEW.lanche;
END

Detalhes:

1. Eu testei os dois SELECT que vão como valor do SET, e eles retornam um DECIMAL sem problema algum.
2. Eu testei o UPDATE com esse número manualmente, e não teve problema algum.
3. O erro não é a parte que tá lanches.lucro, porque eu adicionei isso depois justamente por causa do erro.

Sugestões?

Resolvi simplesmente colocando a expressão com os dois SELECT dentro de uma função, e passando o retorno da mesma no SET.