Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com If


Diego R. Martins

Pergunta

Estou tendo um problema estranho com um if dentro de um procedure.

No momento em que testo, mando as seguinte informação para teste_estoque:

call teste_estoque (1, curdate(), 1);

Em quantidade.estoque tenho 23, porém, mesmo assim, ele não chama a outra store procedure...

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `teste_estoque`(in id_item int, in data_saida date, in quantidade int)
BEGIN
if (select quantidade from estoque where estoque.id_item = id_item) > quantidade then
call out_dados (id_item, data_saida, quantidade);
else
select 'Erro';
end if;
END
P.S. Se eu coloco qual número menor do que 1 em 'quantidade' na linha do if, ele funciona...
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Faça assim:

DECLARE qtd (mesmo tipo do campo quantidade);
SET qtd = (select quantidade from estoque where estoque.id_item = id_item);
if qtd > quantidade  then
Link para o comentário
Compartilhar em outros sites

  • 0

Olá, agradeço a ajuda, mas sua sugestão não funcionou, porém foi graças a ela que encontrei o erro. Por algum motivo o valor 'quantidade' dentro do select estava pegando o valor 'quantidade' vindo do chamado da procedure. Substitui o 'quantidade' por 'estoque.quantidade' e tudo funcionou perfeitamente.

CREATE DEFINER=`root`@`localhost` PROCEDURE `teste_estoque`(in id_item smallint, in data_saida date, in quantidade int)
BEGIN
DECLARE qtd_estoque int;
set qtd_estoque = (select estoque.quantidade from estoque where estoque.id_item = id_item);
if qtd_estoque > quantidade then
call out_dados (id_item, data_saida, quantidade);
else
select 'Erro';
end if;
select qtd_estoque, quantidade;
END
Brigado!
Editado por Diego R. Martins
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...