PEGAR O PENULTIMO REGISTRO NUM RECORDSET

USUARIO.EXCLUIDOS 17/03/2005 21:20:36
#73482
Oi,
Numa tabela, conforme abaixo
Cd_responsavel
Ano
Mes
Qtd_filhos
Qtd_mulheres
Qtd_homens

Muito bem, agora como faço para obter a penúltima informação cadastrada para cada cliente? Só para lembrar, (penúltimo é anterior ao último). O último dado é fácil saber, já o penúltimo está complicado, ainda mais porque estes dados nem sempre são informados.
Alguém pode me ajudar?

Reb
WEBMASTER 17/03/2005 21:57:35
#73484
Quais destes campos seria sua chave ?
Você está gravando por data de registro dentro do banco de dados ou campo autonumeração ???
LCSD 18/03/2005 07:53:43
#73515
Fácil....

VC move para o último registro do seu BCO de DADOS (já que VC já sabe como fazer), e logo depois, VC dá um MOVEPREVIOUS.

Pronto, VC estará no penúltimo registro da sua tabela.
USUARIO.EXCLUIDOS 18/03/2005 10:22:33
#73554
Agradeço a todos.

Webmaster, são estes os campos da chave:
Cd_responsavel
Ano
Mes

Luis Cesar, é tem razão, mas minha intenção é fazê-lo numa única consulta e não via programação.

Até,
THIAGO.CESAR 19/03/2005 08:57:13
#73702
Se você gerasse uma consulta mostrando os dois primeiros registros em ordem decrescente (ou seja, os dois últimos).
SELECT TOP 2 Tabela.* FROM Tabela ORDER BY Tabela.Cd_responsavel DESC

E dessa consulta pegar o último (que seria o penúltimo, pelo menos eu acho)
Tudo ficaria assim:
SELECT Last(SubConsulta.Cd_responsavel) AS Ultimo, SubConsulta.Ano, SubConsulta.Mes, SubConsulta.Qtd_filhos, SubConsulta.Qtd_mulheres, SubConsulta.Qtd_homens
FROM [SELECT TOP 2 Tabela.* FROM Tabela ORDER BY Tabela.Cd_responsavel DESC]. AS SubConsulta
GROUP BY SubConsulta.Ano, SubConsulta.Mes, SubConsulta.Qtd_filhos, SubConsulta.Qtd_mulheres, SubConsulta.Qtd_homens
ORDER BY Last(SubConsulta.Cd_responsavel) DESC;


Eu testei aqui de uma forma bem simples e deu certo, espero que isso resolva seu problema...

Aguardo resposta, até logo.
Tópico encerrado , respostas não são mais permitidas