#1
|
|||
|
|||
![]() 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. |
#2
|
|||
|
|||
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... |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|