Pesquisar na Comunidade
Mostrando resultados para as tags ''ilano''.
Encontrado 1 registro
-
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