所有企业从哪个表中做出选择?

时间:2016-03-17 14:33:34

标签: sql abap

我有两个标准表,VBAPMAKT。 我想要MAKT-MAKTX的元素,其中MAKT-MAT​​NR = VBAP - MATNR。

SELECT MATNR FROM VBAP INTO IT_VBAP.

SELECT MATNR MAKTX FROM MAKT INTO IT_MAKT FOR ALL ENTRIES WHERE MATNR = IT_VBAP.

此代码是否在it_makt中选择只有那些matnr字段相等的值?

所有参赛作品到底有什么作用。

谢谢。

2 个答案:

答案 0 :(得分:0)

 select field_1 field_2 field_n from table into internal_table for all
 entries in another_internal_table where some_field_in_table = another_internal_table-same_field_in_another_internal_table.

如果要根据另一个内部表中的值填充内部表,则用于所有条目。

您可以尝试使用以下

select matnr from vbap into it_vbap.
select maktx from makt into it_makt for all entries in it_vbap where matnr = it_vbap-matnr.

答案 1 :(得分:0)

对于所有条目,您可能会认为,正如您所读到的那样。就像这样:

"对于"中的所有条目允许您使用内部表的子集作为select语句中的where where,可以将此内部表的字段作为select语句中的condition-parameters。

所以,在内部它也只是一个循环,你可以使用sql-monitor事务,并且大多数情况下会看到,如果我没记错的话,所有条目的行为都像循环中的select一样。它非常有用,而且通常经常使用。

如果用作参数表的subset-table为空,则执行全表选择(全表扫描),如果仅将表字段用作where参数。因此,请始终注意填充您的where-table的选择或使用if lines( the_table ) > 0.检查其内容。尽管请查看vwegert的链接,它描述了所有条目的优缺点。你需要更多信息吗?