Amigos nuevamente acudo a ustedes a ver si me pueden ayudar a entender como
funciona lo del limit y offset
Tengo la siguiente tabla
CREATE TABLE movcab
(
movagecod character varying(3) NOT NULL, -- Codigo de la agencia
movdoc character varying(2) NOT NULL, -- Codigo del documento
movnum character varying(7) NOT NULL, -- Numero del documento
movfec date, -- Fecha del documento
CONSTRAINT movcab_pk PRIMARY KEY (movagecod, movdoc, movnum),
)
CREATE INDEX movcab_idx1
ON movcab USING btree (movfec);
Tengo algunos estos registros en la tabla registros en la tabla
Cuando hago un select * from movdoc where order by movfec desc me muestra esto
movagecod
movdoc
movnum
movfec
10
IN
5
04/08/2010
10
EG
1
01/08/2010
10
EG
2
01/08/2010
10
IN
2
30/07/2010
10
IN
3
30/07/2010
10
IN
4
30/07/2010
10
IN
1
29/07/2010
20
EG
1
29/07/2010
10
TR
1
28/07/2010
20
IN
1
28/07/2010
Entonces quiero solo ir obteniendo de uno en uno desde el mas reciente hasta el
mas antiguo, para lo cual uso el limity offset
Cuando hago un select * from movdoc where order by movfec desc limit 1 offset 0
Con esta consulta me retorne el documento IN numero 5
con esto select * from movdoc where order by movfec desc limit 1 offset 1 //me
retorna el Eg numero 1
select * from movdoc where order by movfec desc limit 1 offset 3 me retorna el
in numero 1 envez del in numero 2 que es el que me deberia retornar,
y si sigo aumentando eloffset me da otros registros que no siguen el ordern que
veo en la pantalla.
A que de puede deber este inconveniente voy a dar de loco jeje, no se porque no
me muestra en el orden que se ve en pantalla, algo quisa con el indice o las
llaves primarias.
He buscado informacion pero no encuentro nada que me de una pista de como
funciona el offset para tratar de entender cual es el problema.
Saludos