Problema con el order by
Publicado por Juan Rivera (23 intervenciones) el 18/07/2009 20:44:40
Tengo un problema con el order by, estoy relacionando dos tablas del cual saco 4 columnas que son Codigo de la Persona, Codigo del Predio, Año de registro del monto y el Monto. Yo lo ordeno primero por codigo de la persona, por codigo del predio y por el año todos de manera ascendente.
El problema es que cuando filtro por codigo de la persona y por el codigo del predio el orden sale bien en los montos, pero cuando no lo filtro por estos dos, me lo ordena mal los montos y a veces se cambia de orden de los montos segun cada año. A que se debe esto. Sera porque tengo miles de registros de codigos de personas y predios que me lo hace mal. O le falta poner algo mas al select para que ordene bien los años y montos. Lo que yo quiero es que se mantenga fijo el orden de los años y montos cuando ejecute el select las veces que quiera. Aca esta el select.
select a.pers_p_incodper,
prd.pred_p_incodpre,
a.anio_p_chcodano, prd.prun_detotava
from m_hoja_resu a(nolock) inner join m_pred_unic prd(nolock)
on a.hore_p_incodhoj = prd.hore_p_incodhoj
where prd.estado = 1 and a.estado = 1
and a.pers_p_incodper <> 1 and prd.pred_p_incodpre <> 1
and prd.prun_detotava <> 0
--and a.pers_p_incodper = 2121 and prd.pred_p_incodpre = 65263 --ACA ES DONDE FILTRO
order by a.pers_p_incodper asc, prd.pred_p_incodpre asc, a.anio_p_chcodano asc
El problema es que cuando filtro por codigo de la persona y por el codigo del predio el orden sale bien en los montos, pero cuando no lo filtro por estos dos, me lo ordena mal los montos y a veces se cambia de orden de los montos segun cada año. A que se debe esto. Sera porque tengo miles de registros de codigos de personas y predios que me lo hace mal. O le falta poner algo mas al select para que ordene bien los años y montos. Lo que yo quiero es que se mantenga fijo el orden de los años y montos cuando ejecute el select las veces que quiera. Aca esta el select.
select a.pers_p_incodper,
prd.pred_p_incodpre,
a.anio_p_chcodano, prd.prun_detotava
from m_hoja_resu a(nolock) inner join m_pred_unic prd(nolock)
on a.hore_p_incodhoj = prd.hore_p_incodhoj
where prd.estado = 1 and a.estado = 1
and a.pers_p_incodper <> 1 and prd.pred_p_incodpre <> 1
and prd.prun_detotava <> 0
--and a.pers_p_incodper = 2121 and prd.pred_p_incodpre = 65263 --ACA ES DONDE FILTRO
order by a.pers_p_incodper asc, prd.pred_p_incodpre asc, a.anio_p_chcodano asc
Valora esta pregunta


0