MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 26/11/13, 02:49:37
JoNhNaTaN JoNhNaTaN is offline
Member
 
Fecha de Ingreso: ene 2013
Mensajes: 70
Question 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

Úlima edición por JoNhNaTaN fecha: 26/11/13 a las 02:52:12.
Responder Con Cita
  #2  
Viejo 26/11/13, 08:15:01
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
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...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 05:25:33.


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