3

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).

構文の問題について何か考えはありますか? 前もって感謝します。

4

1 に答える 1