Fórum Ultimo registro/exclusão #372900

29/07/2009

0

Deparei com o seguinte problema:

Tenho duas tabelas: (Processo e histórico)

Com relacionamento 1 Processo para muitos Historicos
ProcessoHistórico                             
================
COD_PROCESSOCOD_PROCESSO
NOMECOD_MOVIMENTACAO
SEXODATA
PROCESSOOBS
DATA_CADASTRO
STATUS

Gostaria de poder excluir na tabela Histórico, somente o último histórico de um determinado processo.
Não estou conseguindo resolver.


Edilsonlima

Edilsonlima

Responder

Posts

29/07/2009

Edilsonlima

Corrigindo

Tabela Processo
===========
COD_PROCESSO
NOME
SEXO
PROCESSO
DATA_CADASTRO
STATUS



Tabela Histórico
==========
COD_PROCESSO
COD_MOVIMENTACAO
DATA
OBS


Responder

Gostei + 0

30/07/2009

Osocram

no Before Delete (não sei se vc esta na aplicação cliente, servidor ou banco) vc veja qual o o maior COD_MOVIMENTACAO e verifica se o registro que sendo removido é ele, se não for não deixa.

Corrigindo Tabela Processo =========== COD_PROCESSO NOME SEXO PROCESSO DATA_CADASTRO STATUS Tabela Histórico ========== COD_PROCESSO COD_MOVIMENTACAO DATA OBS



Responder

Gostei + 0

30/07/2009

Discorpio

Bom dia a todos.

Uma simples instrução SQL

   Delete From Historico Where Cod_Processo = <valor> and Cod_Movimentacao = <valor>


Voce ainda pode optar além de deletar por número do processo, também pela data.

   Delete From Historico Where Cod_Processo = <valor> and Data = <valor>



Responder

Gostei + 0

30/07/2009

Emerson Nascimento

se você quiser apagar o último registro do histórico, sem precisar/se importar saber qual é:
delete from
  Historico
where
  Cod_Processo = <valor>
  and Cod_Movimentacao =
    (select
       Max(Cod_Movimentacao)
     from
       Historico
     where
       Cod_Processo = <valor>)


isso supondo que [i:8942881382]Cod_Movimentacao[/i:8942881382] seja o ID da tabela Historico.


Responder

Gostei + 0

30/07/2009

Edilsonlima

Amigos,

Obrigado a todos pela ajuda.
Não fui muito claro anteriormente e esclareço agora:

O COD_MOVIMENTAÇÃO, não dá para servir como parâmetro, pois este também é um campo que está relacionado a uma outra tabela chamada MOVIMENTAÇÃO.
Segue imagem do relacionamento do banco.

[img:8244b63e47]http://cid-7f6b94bd6fefb5fe.skydrive.live.com/self.aspx/relacionamento/relacionamento.JPG[/img:8244b63e47]

Utilizo o ACCESS, Delphi 6, Componentes ADO, o banco é local


Responder

Gostei + 0

30/07/2009

Discorpio

Boa tarde a todos.

Então neste caso, porque não fazer por data, e pegando a dica do nosso amigo Emerson, é só mudar o campo Cod_Movimentacao pelo campo Data, assim:

delete from
  Historico
where
  Cod_Processo = <valor>
  and Data =
    (select
       Max(Data)
     from
       Historico
     where
       Cod_Processo = <valor>)


Obviamente que a maior data corresponderá o último histórico do processo.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar