MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   SELECT INTO en más de una estructura (foro/showthread.php?t=32979)

Abaunus 14/10/09 17:37:48

SELECT INTO en más de una estructura
 
Hola amigos, deseo hacer lo siguiente, pero ya me estoy disuadiendo de que no se puede:

Teniedo
W_VBAP TYPE VBAP,
W_VBAK TYPE VBAK.


Necesito que el INTO sean dos estructras. Sé que entre paréntesis se puede poner una secuencia de campos, pero así con estructuras no me está funcionando. ¿Es posible hacer un INTO en más de una estructura a la vez?

Espero se entiendo.
Desde ya, gracias, y saludos a todos.

mysmb2 14/10/09 18:32:28

hola compañero

podrias recuperar en una estructura y luego copiarlo a la otra estructura.
Ahora si lo que necestias es recuperar dos registros diferentes tenes que hacer un select up to 2 rows.

Abaunus 14/10/09 18:43:00


Claro, pero lo que yo necesito no es son dos estructuras iguales o dos registros.
Necesito un solo registro (SELECT SINGLE), pero en dos estructuras distintas, una por cada tabla del INNER JOIN (VBAP y VBAK).

martin89 14/10/09 19:18:21



Tu select es a la tabla VBAP, es decir vas a traer los registros de esa tabla. Lo que vos le indicas con el inner join es que te traiga los registros que en coincidan con tu WHERE. Es decir (que el campo VBELN de la tabla VBAP sea igual al campo V_VGBEL de la tabla VBACK.. lo mismo para el campo POSNR y V_VGPOS).

Para traer registros de dos tablas distintas lo único que te queda es hacer dos selects me parece. Puede que esté equivocado si es así por favor corregirme.

Saludos y espero que te ayude

Abaunus 14/10/09 20:29:45



Cuando hacés INNER JOIN podés traer cualquier (todos, o los que quieras) registro de las tablas involucradas, no sólo de la primera. Eso no es problema. El tema es saber si puedo poner en INTO más de una estructura, como sí se puede poner más de un campo, dentro del paréntesis separados por comas.

abapconsultoria 14/10/09 20:37:35



Lo que pedis no se puede hacer. Solo tolera hacerlo con campos.

Saludos.

ballan 15/10/09 09:06:18

Podrias hacer algo asi:

Types: begin of ty_vbak_vbap.

include structure vbak as k renaming with suffix _vbak.
include structure vbap as p renaming with suffix _vbap.

types: end of ty_vbak_vbap.

data: gs_vbak_vbap type ty_vbak_vbap,
gs_vbak type vbak,
gs_vbap type vbap.

select single *
into gs_vbak_vbap
from vbak as k inner join vbap as p
on k~vbeln = p~vbeln
where ...

move-corresponding gs_vbak_vbap to gs_vbak.
move-corresponding gs_vbak_vbap to gs_vbap.

Los campos comunes entre vbak y vbap tendras que mapearlos a mano pero sera mas sencillo

Espero que ayude

Abaunus 15/10/09 16:52:28

¡¡Gracias Ballan!! El SELECT funcionó a la perfección, no así los MOVE-CORRESPONDING, ya que los campos de las estructuras gs_vbak y gs_vbap no tiene los sufijos, por lo tanto sus nombres difieren de gs_vbak_vbap...


No entendí esto:

De nuevo, gracias, y saludos!

Emanuel


Husos Horarios son GMT. La hora en este momento es 19:44:27.

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