Перечислите материалы, которые не имеют определенного языкового ключа - PullRequest
0 голосов
/ 05 октября 2018

Я довольно новичок в ABAP Coding.Я получил задание создать отчет, в котором перечислены все материалы, в которых нет конкретного языкового ключа.Например, пользователь вводит на экране выбора «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

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Вы также можете попробовать следующий SQL-оператор с LEFT JOIN

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.
0 голосов
/ 05 октября 2018

Я предполагаю, что 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 или ниже.

...