FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
realmente no entendi mucho lo que deseas expresar, pero si mas o menos enteni quieres desplazarte entre registro y si es asi digo yo porque no usas .Next o .Prior
Código:
Query.Next o Query.Prior |
#3
|
|||
|
|||
El tema es mas o menos asi ...
Yo hago una query pero SOLO retorna UN registro pues lo hago por CODIGO si me quiero mover al sig hago las misma query con CODIGO+1 Esto si el orden es por codigo , PERO si el orden me lo fijar por descripcion YO deberia ir a LA DESCRIPCION SIGUIENTE y no la conozco ... puedo obtener la DESCRIPCION del PRIMERO que busque por codigo pero la siguiente descripcion NO SE COMO SERA como para hacer una busqueda por DESCRIPCION LIKE substring(cDes,1,??) .. para que no me saltee o no localice ninguna .. ej .. Codigo 1 ----- Descripcion 11 Codigo 4 ----- Descripcion 112 Codigo 3 ----- Descripcion 1122 Codigo 2 ----- Descripcion 22 Si me posiciono por codigo en el 3 por ejemplo .. si quiero buscar el siguiente por descripcion nos e si es 1122xx o 2xx Entonces lo que quiero hacer es buscar el codigo 3 pero ordenando por descripcion y obtener el codigo ant y siguiente en este caso seran el 4 y el 2 para cuando me mueva a la descripcion siguiente ..haga la busqueda por el codigo 2. Espero haya quedado mas claro . Me comentaron algo de RecodSet en SQL pero no lo pude investigar todavia GRACIAS ..por la respuesta. Saludos Ingel |
|
|
|