我有两个标准表,VBAP
和MAKT
。
我想要MAKT-MAKTX的元素,其中MAKT-MATNR = 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字段相等的值?
所有参赛作品到底有什么作用。
谢谢。
答案 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的链接,它描述了所有条目的优缺点。你需要更多信息吗?