Função agregada last
No access tem a função Last() que retorna o ultimo registro, tem no Firebird esta função ou tem como simular ela ou ela esta em alguma UDF???
obrigado
Henrique
obrigado
Henrique
Admin290
Curtidas 0
Respostas
Acacio
03/08/2006
Podes fazer o contrario
select first 1 TabelaQualquer
orderm by Codigo Desc
Assim ele vai trazer o primeiro registro que encotnrar, mas ordenasse na ordem decendente então vai pegar o maior registro que querias;
select first 1 TabelaQualquer
orderm by Codigo Desc
Assim ele vai trazer o primeiro registro que encotnrar, mas ordenasse na ordem decendente então vai pegar o maior registro que querias;
GOSTEI 0
Admin290
03/08/2006
eu ja tinha feito isto, mas eu tenho outros campos agragados.
exemplo:
inscrição ano analise datalancamento
001 06 chumbo 01/08/2006
001 06 Cobre 01/08/2006
001 06 Niquel 01/08/2006
001 06 Cromo 03/08/2006
001 06 Mercurio 02/08/2006
001 06 Cadmio 02/08/2006
001 06 Selenio 03/08/2006
002 06 chumbo 03/08/2006
002 06 Cobre 03/08/2006
002 06 Niquel 01/08/2006
002 06 Cromo 03/08/2006
002 06 Mercurio 02/08/2006
002 06 Cadmio 02/08/2006
002 06 Selenio 03/08/2006
No access seria assim
select a.inscrição , last(a.datalancamento)
from analises as where a.ano=´06´
group by inscrição,ano
001 06 03/08/2006
002 06 03/08/2006
Resumindo, teria que voltar somente a inscrição 001 e data 03/08/06 não importando se é referente a analise cromo ou selenio, por ter uma inscrição para varias analises.
exemplo:
inscrição ano analise datalancamento
001 06 chumbo 01/08/2006
001 06 Cobre 01/08/2006
001 06 Niquel 01/08/2006
001 06 Cromo 03/08/2006
001 06 Mercurio 02/08/2006
001 06 Cadmio 02/08/2006
001 06 Selenio 03/08/2006
002 06 chumbo 03/08/2006
002 06 Cobre 03/08/2006
002 06 Niquel 01/08/2006
002 06 Cromo 03/08/2006
002 06 Mercurio 02/08/2006
002 06 Cadmio 02/08/2006
002 06 Selenio 03/08/2006
No access seria assim
select a.inscrição , last(a.datalancamento)
from analises as where a.ano=´06´
group by inscrição,ano
001 06 03/08/2006
002 06 03/08/2006
Resumindo, teria que voltar somente a inscrição 001 e data 03/08/06 não importando se é referente a analise cromo ou selenio, por ter uma inscrição para varias analises.
GOSTEI 0
Marlonprieto
03/08/2006
Podes fazer o contrario
select first 1 TabelaQualquer
orderm by Codigo Desc
Assim ele vai trazer o primeiro registro que encotnrar, mas ordenasse na ordem decendente então vai pegar o maior registro que querias;
Acacio, não teria outra forma para fazer isso? pois desse jeito fica muito lento o banco, demora muito pra dar o last, já no caso o first é rapidão.
GOSTEI 0
Gandalf.nho
03/08/2006
[quote:05b7ec35db]Podes fazer o contrario
select first 1 TabelaQualquer
orderm by Codigo Desc
Assim ele vai trazer o primeiro registro que encotnrar, mas ordenasse na ordem decendente então vai pegar o maior registro que querias;
Acacio, não teria outra forma para fazer isso? pois desse jeito fica muito lento o banco, demora muito pra dar o last, já no caso o first é rapidão.[/quote:05b7ec35db]
Crie um índice descendente no campo.
GOSTEI 0