首页 > 解决方案 > 列出没有特定语言键的材料

问题描述

我对 ABAP 编码很陌生。我的任务是实现一个列出所有材料的报告,这些材料没有特定的语言键。例如,用户在选择屏幕中输入“EN”作为语言键。因此,应该显示所有没有语言键“EN”的材料。有两个表:MARA(材料数据)和 MAKT(语言键 = SPRAS),它们通过主键(MATNR)连接。

我尝试过这种方式,但它不起作用:

SELECT * FROM MARA INNER JOIN MAKT ON MARA~MATNR EQ MAKT~MATNR WHERE MAKT~SPRAS NOT IN S_SPRAS

标签: selectabap

解决方案


我假设 S_SPRAS 是具有多项选择的选择选项。在这种情况下,如果您需要显示没有指定语言的材料,请使用:

SELECT * INTO TABLE lt_mara
FROM MARA
  WHERE NOT EXISTS (
    SELECT * FROM MAKT WHERE MAKT~MATNR = MARA~MATNR AND MAKT~SPRAS IN S_SPRAS )

如果您需要显示至少没有一种指定语言的材料,它会更复杂,并且取决于您的运行时版本 - 更高的 7.50 或更低。


推荐阅读