Estou com um algoritmo aqui onde eu elaboro um UPDATE e em SEGUIDA tenho que rodar o DELETE, porém, o que eu quero fazer é criar uma Procedure que ao ser executada já faz os dois juntos..
Tentarei explicar como funciona o código mas se ficar dificil entender, por favor me avisem..
Explicando melhor, toda vez que eu realizo o UPDATE ele atualiza algumas colunas para mim na tabela principal (CONTA_G) logo, implica na tabela All_Rlc , no caso eu realizo o DELETE para excluir os dados da All_Rlc .. o UPDATE só fica em 0 , quando todos os dados da All_Rlc são "deletados"
Eu acho que ficou muito dificil de enteder, mas não custa eu tentar aqui.
Pergunta
Felipe Leocadio
Boa Tarde Galera,
Estou com um algoritmo aqui onde eu elaboro um UPDATE e em SEGUIDA tenho que rodar o DELETE, porém, o que eu quero fazer é criar uma Procedure que ao ser executada já faz os dois juntos..
Tentarei explicar como funciona o código mas se ficar dificil entender, por favor me avisem..
_____________________________________________________________________________________________________________________________________
Primeiramente :
update Conta_G
set Conta_G.Grupo = NewGrupo
from Conta_G inner join
(Select CASE when Tb1.Grupo < Tb2.Grupo then Tb1.Grupo else Tb2.Grupo END as Grupo,
max(CASE when Tb1.Grupo > Tb2.Grupo then Tb1.Grupo else Tb2.Grupo END) as NewGrupo
from
(select Grupo, Cod
from Conta_G
inner join Rlc_All
on Rlc_All.Cref = Conta_G.C)as Tb1
inner join
(select Grupo, Cod
from Conta_G
inner join Rlc_All
on Rlc_All.Crlc = Conta_G.C)as Tb2
on Tb1.Cod = Tb2.Cod and Tb1.Grupo <> Tb2.Grupo
Group by CASE when Tb1.Grupo < Tb2.Grupo then Tb1.Grupo else Tb2.Grupo END) as AlterG
on AlterG.Grupo = Conta_G.Grupo;
Esse é um UPDATE que eu executo e atualiza alguns campos para mim.
Ele puxa alguns dados em uma tabela chamada All_Rlc que é onde eu executo o seguinde Delete:
delete Rlc_All from Rlc_All inner join
(select tb1.C as CRef, tb2.C as CRlc from
(
select C, Grupo
from Conta_G inner join
(
select CRef from Rlc_All Group By CRef union select CRlc from Rlc_All Group By CRlc
) as Q1
on C = Cref
) as TB1 inner join
(
select C, Grupo
from Conta_G inner join
(
select CRef from Rlc_All Group By CRef union select CRlc from Rlc_All Group By CRlc
) as Q1
on C = Cref
) as Tb2
on Tb1.Grupo = Tb2.Grupo
and Tb1.C < Tb2.C) as TB3
on Tb3.Cref = Rlc_All.Cref
and Tb3.Crlc = Rlc_All.Crlc
_______________________________________________________________________________________________________________________
Explicando melhor, toda vez que eu realizo o UPDATE ele atualiza algumas colunas para mim na tabela principal (CONTA_G) logo, implica na tabela All_Rlc , no caso eu realizo o DELETE para excluir os dados da All_Rlc .. o UPDATE só fica em 0 , quando todos os dados da All_Rlc são "deletados"
Eu acho que ficou muito dificil de enteder, mas não custa eu tentar aqui.
Se alguém conseguir ajudar eu agradeço.
Valeu Galera.
[]´s
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.