Olá, tenho uma tabela chamada 'Venda' que contém um valor total da venda.. e outra chamada pagamento que me da opcoes de cartao e dinheiro,(podendo inserir varios pagamentos) porém antes de inserir um valor de pagamento , gostaria de buscar o valor da referida venda e verificar se a soma de valores daquela venda caso exista na tabela de pagamento, não seja maior que o valor total da venda... tentando a sp abaixo mas ate agora sem sucesso.. alguém pode me ajudar porfavor?
CREATE DEFINER=`root`@`localhost` PROCEDURE `verificapagamento`(infcodigo int, pagcodigo int, vencodigo int, valor double)
BEGIN
set @posicao = vencodigo;
set @valorvenda = (select venvalortotal from venda where vencodigo=@posicao);
set @somavalores= (SELECT COALESCE(SUM(valor),0) FROM informaformapgto
WHERE vencodigo=vencodigo);
if (@somavalores <= @valorvenda) then
insert into informaformapgto(infcodigo, pagcodigo, vencodigo, valor) values
(infcodigo, pagcodigo, vencodigo, valor);
end if;
END