SAP では、次の要求はうまく機能しますが、結果として 3000 の材料 (MATNR) に対して #5000000 行を取得します。
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).
構文の問題について何か考えはありますか? 前もって感謝します。