MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Seleccionar ultimo registro (foro/showthread.php?t=69787)

JoNhNaTaN 26/11/13 02:49:37

Seleccionar ultimo registro
 
Señores buenas noches, tengo en una tabla interna una lista de numero de materiales (matnr) y deseo consultar la ultima guía de remisión (xblnr) con la que fue enviada a un centro, dicha información se encuentra en likp (documento de entrega - cabecera) y lips (documento de entrega - detalle) , el problema radica en que no puedo hacer un:

Select single por que me muestra el registro mas antiguo o mejor dicho el primer registro que aparece en la tabla, con la fecha mas antigua, y no puedo seleccionar todos las guias de remisión y luego ordenarlas descendentemente para coger el primer registro por que son muchos registros y me da una excepción de time up

es como si tuviera esta tabla

Fecha VBELN XBLNR matnr
12.01.2011 00000000012 GR-0012-00002 000012
15.01.2011 00000000013 GR-0012-00003 000012
16.01.2011 00000000015 GR-0012-00005 000012
18.01.2011 00000000018 GR-0012-00010 000012
21.01.2011 00000000022 GR-0012-00015 000012
22.01.2011 00000000025 GR-0012-00018 000012
.
. (millones de registros)
.
20.11.2013 09523214122 GR-0812-00122 000012
20.11.2013 09523214128 GR-0812-00152 000012

si mi fecha actual es 22.11.2013 entonces quiero recuperar el siguiente registro:
20.11.2013 09523214128 GR-0812-00152 000012

si hago un select single, me tomara este registro.
12.01.2011 00000000012 GR-0012-00002 000012

Como les digo no puedo tomar todas las guias y ordenarlas desendentemente y tampoco puedo ponerle rango de fecha ya que es un factor independiente, ya que la ultima guia puede ser de 1, 2 o 3 o quien sabe años atras...
entonces alguna idea???

Gracias

ballan 26/11/13 08:15:01

Si lo haces en online lo unico que puedes hacer es utilizar select... order by o utilizar select ... up to X rows, asi te vas trayendo paquetes de X registros y tendrias que hacer un mini algoritmo para quedarte con el registro deseado

Otra cosa que podrias hacer es añadir un indice a la tabla para los campos de fecha, aunque esto deberias dejarlo como ultima opcion pues al añadir indice "ralentizarias" la bbdd

Si la seleccion tarda tanto que da time out tendras que buscar la manera de que se ejecute asincronamente (en fondo) ya sea mediante un job, una funcion en background task...


Husos Horarios son GMT. La hora en este momento es 06:14:01.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web