Ir para conteúdo
Fórum Script Brasil
  • 0

Registro Anterior No Sql


FBA

Pergunta

Oi Galera;

Estou com um problema que acredito que vocês vao tirar de letra mas vamos lá...

Estou criando um controle de veiculos (no access mas acredito que isto tem que ser feito no modo sql) onde tenho os capos "destino" ,"km inicial" e "km final", o que eu preciso é e um um outro campo buscar o valor do campo destino sendo que este supostamente seria a origem pra que eu possa usar esta este campo em uma consulta de criterio informando a origem e o destino,,, mas precisaria ainda que quando um registro for excluido este seja ignorado e seja passado para o anterior

por exemplo

quero buscar o valor do campo destino do campo anterior, estou no registro 25 por exemplo mas não existe o registro 24 então este teria que se direcionar para o registro 23 ou 22 ou ir diminuindo ate chegar em um campo que exista.

sera que alguém pode me ajjudar

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

você tem um campo auto numeracao, certo?? então deve funcionar assim (adaptado do codigo do access que você comentou comigo via mp):

Select X.KmInicio, X.KmFim, X.Destino, X.Origem From (Select Tabela.Código, Tabela.KmInicio, Tabela.KmFim, Tabela.Destino, Anterior.Destino as Origem, (Case When (Tabela.Código - Anterior.Código) Is Null Then 0 Else Tabela.Código - Anterior.Código End) as Diferenca from Tabela LEFT JOIN (Select * from Tabela) as Anterior ON Tabela.Código > Anterior.Código) as X 

INNER JOIN

(SELECT Tabela.Código, Min(Case When (Tabela.Código - Anterior.Código) Is Null Then 0 Else (Tabela.Código - Anterior.Código) End) as Diferenca FROM Tabela LEFT JOIN (Select * from Tabela) AS Anterior ON Tabela.Código > Anterior.Código Group By Tabela.Código) as Y ON X.Diferenca  = Y.Diferenca And X.Código = Y.Código[/code]

so troque os nomes dos campos pelos nomes certos e testa ai. como num tenho sql aqui num pude testar, qualquer problema avisa aí

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Josimar Abrantes

Caros colegas de profissão,

Quero agradecê-los pela solução sugerida em seus emails. Consegui resolver um grande problema com a query sugerida por vocês.

Muitíssimo obrigado.

você tem um campo auto numeracao, certo?? então deve funcionar assim (adaptado do codigo do access que você comentou comigo via mp):

Select X.KmInicio, X.KmFim, X.Destino, X.Origem From (Select Tabela.Código, Tabela.KmInicio, Tabela.KmFim, Tabela.Destino, Anterior.Destino as Origem, (Case When (Tabela.Código - Anterior.Código) Is Null Then 0 Else Tabela.Código - Anterior.Código End) as Diferenca from Tabela LEFT JOIN (Select * from Tabela) as Anterior ON Tabela.Código > Anterior.Código) as X 

INNER JOIN

(SELECT Tabela.Código, Min(Case When (Tabela.Código - Anterior.Código) Is Null Then 0 Else (Tabela.Código - Anterior.Código) End) as Diferenca FROM Tabela LEFT JOIN (Select * from Tabela) AS Anterior ON Tabela.Código > Anterior.Código Group By Tabela.Código) as Y ON X.Diferenca  = Y.Diferenca And X.Código = Y.Código

so troque os nomes dos campos pelos nomes certos e testa ai. como num tenho sql aqui num pude testar, qualquer problema avisa aí

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

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

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...