Ultimo registro/exclusão
Deparei com o seguinte problema:
Tenho duas tabelas: (Processo e histórico)
Com relacionamento 1 Processo para muitos Historicos
Gostaria de poder excluir na tabela Histórico, somente o último histórico de um determinado processo.
Não estou conseguindo resolver.
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
Curtidas 0
Respostas
Edilsonlima
29/07/2009
Corrigindo
Tabela Processo
===========
COD_PROCESSO
NOME
SEXO
PROCESSO
DATA_CADASTRO
STATUS
Tabela Histórico
==========
COD_PROCESSO
COD_MOVIMENTACAO
DATA
OBS
Tabela Processo
===========
COD_PROCESSO
NOME
SEXO
PROCESSO
DATA_CADASTRO
STATUS
Tabela Histórico
==========
COD_PROCESSO
COD_MOVIMENTACAO
DATA
OBS
GOSTEI 0
Osocram
29/07/2009
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
GOSTEI 0
Discorpio
29/07/2009
Bom dia a todos.
Uma simples instrução SQL
Voce ainda pode optar além de deletar por número do processo, também pela data.
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>
GOSTEI 0
Emerson Nascimento
29/07/2009
se você quiser apagar o último registro do histórico, sem precisar/se importar saber qual é:
isso supondo que [i:8942881382]Cod_Movimentacao[/i:8942881382] seja o ID da tabela Historico.
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.
GOSTEI 0
Edilsonlima
29/07/2009
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.
Utilizo o ACCESS, Delphi 6, Componentes ADO, o banco é local
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.
Utilizo o ACCESS, Delphi 6, Componentes ADO, o banco é local
GOSTEI 0
Discorpio
29/07/2009
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:
Obviamente que a maior data corresponderá o último histórico do processo.
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.
GOSTEI 0