我对 ABAP 编码还很陌生。我的任务是实现一份列出所有 Material 的报告,这些 Material 没有特定的语言 key 。 例如,用户在选择屏幕中输入“EN”作为语言键。因此,应显示所有没有语言键“EN”的 Material 。 有两个表:MARA( Material 数据)和 MAKT(语言键 = SPRAS),它们通过主键(MATNR)连接。
我尝试了这种方法,但不起作用:
SELECT * FROM MARA INNER JOIN MAKT ON MARA~MATNR EQ MAKT~MATNR WHERE MAKT~SPRAS NOT IN S_SPRAS
最佳答案
我认为,S_SPRAS 是多选的选择选项。 在这种情况下,如果您需要显示没有指定语言的 Material ,请使用:
SELECT * INTO TABLE lt_mara
FROM MARA
WHERE NOT EXISTS (
SELECT * FROM MAKT WHERE MAKT~MATNR = MARA~MATNR AND MAKT~SPRAS IN S_SPRAS )
如果您需要显示至少不包含一种指定语言的 Material ,则情况会更加复杂,并且取决于您的运行时版本 - 7.50 更高或更低。
关于select - 列出没有特定语言键的 Material ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52668334/