我对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
答案 0 :(得分:3)
我认为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。
答案 1 :(得分:0)
您也可以尝试使用LEFT JOIN跟随SQL语句
select mara~matnr
into table @data(gt_matnr)
from mara
left JOIN makt
on MAKT~MATNR = MARA~MATNR and
MAKT~SPRAS = @s_spras-low
where MAKT~MATNR IS null.