Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Trigger


Posts Recomendados


  • Tópicos Que Criei:  14
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  57
  • Conteúdo/Dia:  0.01
  • Reputação:   1
  • Pontos/Conquistas:  426
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  52

cirei esta trigger e esta funcionando 100% quando ha o faturamento de um pedido somente, quando sao faturados dois ou mais, retorna msg que a subselect esta trazendo mais de um registro. como corrigir?

if (select codtmv from inserted) < '1.2' and (select status from inserted) = 'F' begin

UPDATE FCFOCOMPL

SET CLASSIFICA =

(SELECT (sum((cast(c.qmaterial as numeric(10,2))) +

(cast(c.pentrega as numeric(10,2))) +

(cast(c.qatende as numeric(10,2))))/3) Valor

from tmovcompl c (nolock) inner join inserted u (nolock)

on (c.idmov = u.idmov and c.codcoligada = u.codcoligada))

where codcfo = (select distinct codcfo from inserted)

and codcoligada = (select distinct codcoligada from inserted)

end

obrigado

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  152
  • Conteúdo/Dia:  0.02
  • Reputação:   0
  • Pontos/Conquistas:  770
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Olá Marco, acredito que a falha esteja na abertura da trigger, na primeira condição(IF).

Faz o seguinte: troque a condição -->> if (select codtmv from inserted) < '1.2' and (select status from inserted) = 'F'

por um "if exists", que permitirá mais de um valor para comparação da condição.

Ficando assim:

if exists(select 1 from inserted where codtmv < '1.2' and status= 'F')

begin ......

Editado por Emanuel Peixoto
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  14
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  57
  • Conteúdo/Dia:  0.01
  • Reputação:   1
  • Pontos/Conquistas:  426
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  52

cara valeu mesmo. so coloquei DISTINCT e funcionou.

abraçao!

select DISTINCT codtmv from inserted

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  152
  • Conteúdo/Dia:  0.02
  • Reputação:   0
  • Pontos/Conquistas:  770
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Lembrese que o distinct só resolveu devido a o retorno do select só ser de um valor do codtmv, sempre retornando 1 registro.BLZ!

Em circunstancia diferentes, mesmo com o distinct se for retornado mais de um codtmv, o erro acontecerá novamente.

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

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

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.