Ver Mensaje Individual
  #1  
Antiguo 03-01-2006
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Reputación: 21
ingel Va por buen camino
Select ordenado por un campo pero localizado por otro

Hola a todos .. Estoy reemplazando en un sistema en produccion los componentes tTable por tQuerys ya que no es optimo el tiempo de respuesta.
Mi consulta es por lo siguiente : en un ABM tengo 2 flechas para ir al registro siguiente y al anterior y a su vez 2 radios para ordenar por codigo o por descripcion ...con el TTable no habia problema porque hacia un select * order by coigo o descripcion y con las flechas y la instrucciones prior o next la recorria ..pero..

Ahora, cuando entro al ABM hago un 'select * from articulos where codigo_articulo =: codigo' para posicionarme y mostrar.

Cuando me muevo con las flechas ( si tengo marcado ordenado por codigo)
hago al mismo select pero con el parametro codigo+1 o codigo-1

PERO si lo ordenan por 'descripcion' es donde viene mi complicacion
porque busco por codigo pero tengo que ir al siguiente o al anterior POR DESCRIPCION ..
No me parece optimo buscar por el campo descripcion poqeu no se el tamaño del string a buscar como para hacer un .. where descripcion like 'algo%'
y atinarle a la descripcion siguiente.

Se me ocurre hacer algun tipo de consulta que me devuelva x cantidad de registros ANTES y x cantidad DESPUES de MI CODIGO pero ordenado por descripcion ... el problema es que no se como ..

seria algo asi como

select * from articulos where codigo_articulo =:codigo
or (10 para arriba) or (10 para abajo)
order by descripcion

se entendió? se puede hacer algo asi ?
con el viejo Recno() de clipper se podria , creo que la nueva version de SQL ya lo trae..pero por ahora dispongo solo de SQL 2000

gracias .. saludos
Ingel
Responder Con Cita