2
В SAP следующий запрос работает хорошо. Но есть результат я получаю # 5000000 линии для 3000 статей (MATNR):Синтаксис подзапроса с SAP/SQL
SELECT k~bldat a~matnr k~bldat e~maktx a~mtart a~brgew
a~ntgew a~gewei a~volum a~laeda mseg~bwart k~budat
INTO CORRESPONDING FIELDS OF TABLE itab
FROM mseg
INNER JOIN makt AS e ON e~matnr = mseg~matnr
INNER JOIN mara AS a ON a~matnr = mseg~matnr
INNER JOIN mkpf AS k ON k~mblnr = mseg~mblnr
WHERE a~mtart in ('ZRSV','ZVTP').
Но если я просто хочу, последнее движение/дату для каждого из моего MATNR, следующий запрос вернуть эту ошибку: Неправильного имени таблицы или псевдоним таблицы имя таблицы имя псевдонима «(SELECT MAX (T»
SELECT k~bldat a~matnr k~bldat e~maktx a~mtart a~brgew
a~ntgew a~gewei a~volum a~laeda mseg~bwart k~budat
INTO CORRESPONDING FIELDS OF TABLE itab
FROM mseg
INNER JOIN makt AS e ON e~matnr = mseg~matnr
INNER JOIN mara AS a ON a~matnr = mseg~matnr
INNER JOIN mkpf AS k ON k~mblnr = mseg~mblnr
WHERE a~mtart in ('ZRSV','ZVTP')
AND k~bldat = (SELECT MAX(t~bldat) FROM mkpf AS t
WHERE t~mblnr = mesg~mblnr).
Любая идея проблемы синтаксиса заранее спасибо
Благодарим за советы! Теперь я могу выполнить запрос. Но запрос возвращает все записи. Это похоже на то, что фильтр MAX() не работает ... – FredM
Я не так свободно владею таблицами MM - можно ли выбрать весь набор данных (без подзапроса), а затем использовать 'SORT itab BY mblnr bldat DESCRNDING '(это оставляет самую последнюю запись для каждого' mblnr' сверху), а затем 'DELETE ADJACENT DUPLICATES FROM itab СРАВНЕНИЕ mblnr'? – vwegert
Хорошо, я последую вашим советам. (даже если бы я предпочел исключить данные на входе и не заполнить itab большим количеством данных, которые мне не нужны). Еще раз спасибо за вашу помощь! – FredM