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

O que tem de errado nessa trigger?


ilano

Pergunta

Olá pessoal,

Sou novato aqui no fórum. Estou tentando fazer a trigger abaixo, mas está dando erro no primeiro SET, como posso corrigir?

CREATE DEFINER = CURRENT_USER TRIGGER `F001_ESTOQUE_ALTERAR` AFTER INSERT ON `F001_ESTOQUE`
  FOR EACH ROW
BEGIN
	SET NEW.SALDOANTERIOR = (CASE WHEN NEW.ID = (SELECT MIN(X.ID) FROM F001_ESTOQUE X WHERE X.IDPRODUTO = NEW.IDPRODUTO LIMIT 1) THEN
IFNULL(NEW.SALDOANTERIOR, 0) ELSE
IFNULL((((SELECT IFNULL(X.SALDOANTERIOR, 0)
FROM F001_ESTOQUE X
WHERE X.IDPRODUTO = NEW.IDPRODUTO AND X.ID < NEW.ID
) + IFNULL(NEW.ENTRADA, 0)) - IFNULL(NEW.SAIDA, 0)), 0));
    
    SET NEW.SALDOATUAL =
    ((CASE WHEN NEW.SALDOANTERIOR IS NULL THEN 0 ELSE NEW.SALDOANTERIOR END) +
    (CASE WHEN NEW.ENTRADA IS NULL THEN 0 ELSE NEW.ENTRADCASE WHEN A.ID = (SELECT MIN(X.ID) FROM F001_ESTOQUE X WHERE X.IDPRODUTO = A.IDPRODUTO LIMIT 1) THEN
IFNULL(A.SALDOANTERIOR, 0) ELSE
IFNULL((((SELECT IFNULL(X.SALDOANTERIOR, 0)
FROM F001_ESTOQUE X
WHERE X.IDPRODUTO = A.IDPRODUTO AND X.ID < A.ID
) + IFNULL(A.ENTRADA, 0)) - IFNULL(A.SAIDA, 0)), 0))A END)) -
    (CASE WHEN NEW.SAIDA IS NULL THEN 0 ELSE NEW.SAIDA END);
    
    SET NEW.VALORSALDOATUAL =
    ((CASE WHEN NEW.VALORANTERIOR IS NULL THEN 0 ELSE NEW.VALORANTERIOR END) +
    (CASE WHEN NEW.VALORENTRADA IS NULL THEN 0 ELSE NEW.VALORENTRADA END)) -
    (CASE WHEN NEW.VALORSAIDA IS NULL THEN 0 ELSE NEW.VALORSAIDA END);
    
    IF(NEW.IDPRODUTO = 0) THEN SET NEW.IDPRODUTO = NULL; END IF;
    IF(NEW.IDDETALHEPEDIDO = 0) THEN SET NEW.IDDETALHEPEDIDO = NULL; END IF;
    IF(NEW.IDUSUARIOALTERA = 0) THEN SET NEW.IDUSUARIOALTERA = NULL; END IF;
    
    UPDATE E005_PRODUTOS SET E005_PRODUTOS.QUANTESTOQUE = NEW.SALDOATUAL
    WHERE E005_PRODUTOS.ID = NEW.ID;
END;

 

Grato,

Ilano

Editado por ilano
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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...