Cuando varias tablas SAP están unidas lógicamente, siempre es recomendable utilizar un inner join para leer los datos de ellas. Esto reduce la carga en la red.
Tomemos un ejemplo de 2 tablas, zairln y zflight. La tabla zairln tiene el campo airln, que es el código de la aerolínea y el campo lnnam, que es el nombre de la aerolínea. La tabla zflight tiene el campo airln, el código de la aerolínea y otros campos que contienen los detalles de los vuelos que opera una aerolínea.
Dado que estas 2 tablas están unidas lógicamente por el campo airln, es recomendable utilizar el inner join.
Seleccionar a airln a lnnam b fligh b cntry en la tabla int_airdet
Desde zairln como a inner join zflight como b en a airln = b airln.
Para restringir los datos según el criterio de selección, se puede agregar una cláusula where al inner join anterior.
Digamos que tenemos 2 tablas VBAP y VBAK. Son las siguientes.
Contenido de VBAK.
VBELN ERDAT ERNAM AUART
1001 20021011 10 12
1002 20021012 12 12
1003 20021011 13 14
Contenido de VBAP.
VBELN POSNR MATNR MATKL
1001 10 12 12
1002 13 12 14
1002 10 1 1
Ahora tenemos VBELN como clave para estas dos tablas. Por lo tanto, escribimos la consulta de selección como
SELECT vbak~vbeln
vbak~erdat
vbak~ernam
vbak~auart
vbap~posnr
vbap~matnr
vbap~matkl
INTO TABLE tbl_values
FROM vbak JOIN vbap ON vbap vbeln = vbak vbeln.
La salida será
VBELN ERDAT ERNAM AUART POSNR MATNR MATKL
1001 20021011 10 12 10 12 12
1002 20021012 12 12 13 12 14
1002 20021012 12 12 10 1 1
Saludos,
Srinivas
<b>* recompensa por respuestas útiles *</b>